¿Cómo cambiar los íconos de múltiples archivos desde la terminal?

9

Me gustaría cambiar los íconos de varios archivos desde la terminal.
No son iconos de iniciador, sino los iconos predeterminados para tipos de archivo, basados ​​en las terminaciones de los archivos.
¿Cómo lograr esta tarea?

karthick87
fuente
¿Quiere decir que puede hacer clic derecho -> Propiedades en el administrador de archivos?
dv3500ea
¿Son los íconos del iniciador, o los íconos predeterminados para los tipos de archivo, según las terminaciones de los archivos?
Johanna Larsson
Sí, quiero cambiar los íconos de varios archivos en un ícono.
karthick87
No iconos de iniciador, iconos predeterminados para tipos de archivo.
karthick87

Respuestas:

10

Los "emblemas" se almacenan como archivos binarios en el directorio ~/.local/share/gvfs-metadata.

Por lo tanto, necesita gvfs-bin Instalar gvfs-bin para que esto pueda extraerlos y guardarlos. Ah, y hay un archivo por partición / volumen / directorio / archivo (para empeorar las cosas).

Para obtener información sobre un emblema puede usar:

gvfs-info -a metadata::emblems {filename|folder}

Para configurar un {icono} para un {nombre de archivo} o {carpeta} que use:

gvfs-set-attribute -t stringv {filename|folder} metadata::emblems {icon}

Ejemplo:

Creé las carpetas 1, 2, 3, 4 en ~ / Música.

im1

Comandos dentro del terminal de la imagen:

gvfs-set-attribute 1 metadata::custom-icon file:///usr/share/pixmaps/gnome-log.png

gvfs-set-attribute 2 metadata::custom-icon file:///usr/share/pixmaps/gnome-spider.png

Cambie el 1 y 2 a un archivo de video existente o cualquier otro archivo real y debería funcionar igual.

y F5 actualiza el panel inferior.

Como puede adivinar en el directorio 3 y 4, deberá hacer esto para cada archivo para el que desee.

Aquí hay un script que recorre un directorio y establece un PNG que reside en la carpeta como el emblema de las carpetas (básicamente, esto imita el método de Windows de usar folder.pngcomo el emblema del directorio que se encuentra sobre él).

#! / usr / bin / python

importar os
de os.path import join

cwdir = str (os.popen ('pwd'). readline ()). replace ('\ n', '')

para root, directorios, archivos en os.walk (cwdir):
    para nombre en archivos:
        if name.lower (). find ('. png')! = -1:
            os.system ('gvfs-set-attribute "' + root + '" metadata :: custom-icon "' + name + '"')

Es posible que pueda cambiar esto a su propia versión que incluya archivos.

uso del script bajo su propio riesgo

Rinzwind
fuente