¿Cómo puedo cambiar o establecer el icono para un archivo o carpeta, en la terminal, ¿es necesario utilizar un lenguaje de scripts?
Respuestas
¿Demasiados anuncios?Con el beneficio de varios años de distancia:
user588 la respuesta y koiyu la respuesta de funcionar bien, pero se basan en las utilidades (Rez
, DeRez
y SetFile
) que:
- no se instalan por defecto (vienen con Xcode o el desarrollador de utilidades de línea de comandos)
- ahora están en desuso (
Rez
yDeRez
, ya que se relacionan de Carbono)
osxiconutils se ven interesantes, pero no compilará más (como la de OSX 10.10.4).
Por lo tanto, he creado CLI fileicon
, que se debe trabajar en las cristalinas aguas de la OSX de la máquina (sin requisitos); es un script en Bash basa principalmente en xattr
y sips
.
Permite la configuración de/quitar/extraer iconos personalizados para/de archivos o carpetas.
Se puede instalar de la siguiente manera:
- Si usted tiene Node.js instalado, desde el mecanismo nacional de prevención de registro, con
[sudo] npm install -g fileicon
- De otra manera:
- Descargar el CLI como
fileicon
(este enlace estancia actual). - Hacerlo ejecutable con
chmod +x fileicon
. - Mover o enlace a una carpeta en su
$PATH
, como/usr/local/bin
(requieresudo
).
- Descargar el CLI como
Aquí está la información de uso; para obtener información completa, consulte el manual:
$ fileicon -h
Set a custom icon for a file or folder:
fileicon set <fileOrFolder> <imageFile>
Remove a custom icon from a file or folder:
fileicon rm <fileOrFolder>
Get a file or folder's custom icon:
fileicon get [-f] <fileOrFolder> [<iconOutputFile>]
Test if a file or folder has a custom icon:
fileicon test <fileOrFolder>
-q ... silence status output
Standard options: --help, --man, --version, --home
Yo casi inició una recompensa por esto, porque no he podido cambiar el icono de una carpeta con @mankoff's respuesta. Pero he encontrado una solución.
Para cambiar la carpeta icono que no apuntan Rez -append tmp.rsrc
a la carpeta, pero una especial Icon\r
archivo dentro de la carpeta. Si usted no ha establecido un icono personalizado a la carpeta antes, el archivo, probablemente, no va a existir, pero Rez
crea sobre la marcha. La eliminación de la Icon\r
archivo se eliminará el icono personalizado, por lo que para prevenir los accidentes es bueno estar oculto.
Estas son las modificaciones a la mankoff la respuesta:
# Append a resource to the folder you want to icon-ize.
Rez -append tmpicns.rsrc -o $'myfolder/Icon\r'
# Use the resource to set the icon.
SetFile -a C myfolder/
# Hide the Icon\r file from Finder.
SetFile -a V $'myfolder/Icon\r'
Además de rubí, aquí es una versión de Python:
#!/usr/bin/env python
import Cocoa
import sys
Cocoa.NSWorkspace.sharedWorkspace().setIcon_forFile_options_(Cocoa.NSImage.alloc().initWithContentsOfFile_(sys.argv[1].decode('utf-8')), sys.argv[2].decode('utf-8'), 0) or sys.exit("Unable to set file icon")
./set-image.py image.png myfile
Python que preinstaladas en Mac OS ya tiene PyObjC así que no tienes que instalar los paquetes.
Echale un vistazo setfileicon
(código fuente), una utilidad creada por Damien Bobillot.
Descargar el binario aquí: http://maxao.free.fr/telechargements/setfileicon.gz
Después de desempacar el archivo, hacerlo ejecutable:
chmod +x setfileicon
Entonces se puede utilizar como sigue:
./setfileicon "my-icon.icns" "my-file-or-directory"