Как поменять иконки нескольких файлов из терминала?

Я хотел бы изменить значки нескольких файлов из терминала.
Не значки запуска, а значки по умолчанию для типов файлов, основанные на окончаниях файлов.
Как решить эту задачу?

8
задан 2 May 2011 в 15:58

1 ответ

"эмблемы" хранятся как двоичные файлы в каталоге ~/.local/share/gvfs-metadata.

Таким образом, Вам нужен gvfs-мусорное-ведро Install gvfs-bin для этого, чтобы смочь извлечь их и сохранить их. О, и существует один файл на раздел/объем/каталог/файл (ко всем неприятностям).

Для получения информации об эмблеме, можно использовать:

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

Для установки {значок} для {имя файла} или {папка}, Вы используете:

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

Пример:

Я создал папки 1, 2, 3, 4 в ~ / Музыка.

im1

Команды в терминале изображения:

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

Измените 1 и 2 к существующему видеофайлу или любому другому фактическому файлу, и он должен работать то же.

и F5 обновляет нижнюю панель.

Как можно предположить из каталога 3 и 4, необходимо будет сделать это для каждого файла, для которого Вы хотите это.

Вот сценарий, который идет через каталог и устанавливает PNG, который находится в папке как эмблема папок (в основном, это подражает методу Windows использования folder.png как эмблема каталога выше его).

#!/usr/bin/python

import os
from os.path import join

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

for root, dirs, files in os.walk(cwdir):
    for name in files:
        if name.lower().find('.png') != -1:
            os.system('gvfs-set-attribute "'+root+'" metadata::custom-icon "'+name+'"')

Вы смогли изменять это в свою собственную версию, которая включает файлы.

использование сценария в собственном риске

9
ответ дан 2 May 2011 в 15:58

Другие вопросы по тегам:

Похожие вопросы: