Comment changer les icônes de plusieurs fichiers depuis le terminal?

9

Je voudrais changer les icônes de plusieurs fichiers depuis le terminal.
Pas des icônes de lancement, mais des icônes par défaut pour les types de fichiers, en fonction des fins de fichier.
Comment réaliser cette tâche?

karthick87
la source
Voulez-vous dire que vous pouvez par un clic droit -> Propriétés dans le gestionnaire de fichiers?
dv3500ea
S'agit-il d'icônes de lancement ou d'icônes par défaut pour les types de fichiers, basées sur les fins de fichier?
Johanna Larsson
Oui, je veux changer les icônes de plusieurs fichiers en une seule icône.
karthick87
Pas d'icônes de lancement, icônes par défaut pour les types de fichiers.
karthick87

Réponses:

10

les "emblèmes" sont stockés sous forme de fichiers binaires dans le répertoire ~/.local/share/gvfs-metadata.

Vous avez donc besoin de gvfs-bin Installer gvfs-bin pour cela afin de pouvoir les extraire et les enregistrer. Oh et il y a un fichier par partition / volume / répertoire / fichier (pour aggraver les choses).

Pour obtenir des informations sur un emblème, vous pouvez utiliser:

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

Pour définir une {icône} pour un {nom de fichier} ou {dossier}, vous utilisez:

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

Exemple:

J'ai créé les dossiers 1, 2, 3, 4 dans ~ / Musique.

im1

Commandes à l'intérieur du terminal de l'image:

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

Remplacez 1 et 2 par un fichier vidéo existant ou tout autre fichier réel et cela devrait fonctionner de la même manière.

et F5 met à jour le panneau inférieur.

Comme vous pouvez le deviner à partir des répertoires 3 et 4, vous devrez le faire pour chaque fichier pour lequel vous le souhaitez.

Voici un script qui parcourt un répertoire et définit un PNG qui réside dans le dossier comme emblème des dossiers (en gros, cela imite la méthode Windows d'utilisation folder.pngcomme emblème du répertoire au-dessus).

#! / usr / bin / python

importer os
depuis os.path import join

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

pour root, dirs, fichiers dans os.walk (cwdir):
    pour le nom dans les fichiers:
        si name.lower (). find ('. png')! = -1:
            os.system ('gvfs-set-attribute "' + root + '" metadata :: custom-icon "' + name + '"')

Vous pourrez peut-être le modifier dans votre propre version qui inclut des fichiers.

utilisation du script à vos risques et périls

Rinzwind
la source