Wie ändere ich die Symbole mehrerer Dateien vom Terminal aus?

9

Ich möchte die Symbole mehrerer Dateien vom Terminal aus ändern.
Keine Startsymbole, sondern die Standardsymbole für Dateitypen, basierend auf den Dateienden.
Wie kann man diese Aufgabe erfüllen?

karthick87
quelle
Meinen Sie, wie Sie durch Rechtsklick -> Eigenschaften im Dateimanager können?
dv3500ea
Sind das Startsymbole oder die Standardsymbole für Dateitypen, basierend auf den Dateienden?
Johanna Larsson
Ja, ich möchte die Symbole mehrerer Dateien in ein Symbol ändern.
karthick87
Keine Startsymbole, Standardsymbole für Dateitypen.
karthick87

Antworten:

10

"Embleme" werden als Binärdateien im Verzeichnis gespeichert ~/.local/share/gvfs-metadata.

Sie benötigen also gvfs-bin Installieren Sie gvfs-bin , um sie extrahieren und speichern zu können. Oh, und es gibt eine Datei pro Partition / Volume / Verzeichnis / Datei (um die Sache noch schlimmer zu machen).

Um Informationen zu einem Emblem zu erhalten, können Sie Folgendes verwenden:

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

So legen Sie ein {Symbol} für einen {Dateinamen} oder {Ordner} fest, den Sie verwenden:

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

Beispiel:

Ich habe die Ordner 1, 2, 3, 4 in ~ / Music erstellt.

im1

Befehle im Terminal des Bildes:

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

Ändern Sie die 1 und 2 in eine vorhandene Videodatei oder eine andere tatsächliche Datei, und es sollte genauso funktionieren.

und F5 aktualisiert das untere Bedienfeld.

Wie Sie aus Verzeichnis 3 und 4 erraten können, müssen Sie dies für jede Datei tun, für die Sie dies wünschen.

Hier ist ein Skript, das durch ein Verzeichnis geht und ein PNG festlegt, das sich im Ordner als Ordner-Emblem befindet (im Grunde ahmt dies die Windows-Methode nach, die folder.pngals Emblem des darüber liegenden Verzeichnisses verwendet wird).

#! / usr / bin / python

os importieren
von os.path import join

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

für root, dirs, dateien in os.walk (cwdir):
    für Namen in Dateien:
        if name.lower (). find ('. png')! = -1:
            os.system ('gvfs-set-attribute "' + root + '" metadata :: custom-icon "' + name + '"')

Möglicherweise können Sie dies in Ihre eigene Version ändern, die Dateien enthält.

Verwendung des Skripts auf eigenes Risiko

Rinzwind
quelle