如何从终端更改多个文件的图标?

kar*_*k87 9 icons command-line

我想从终端更改多个文件的图标。
不是启动器图标,而是基于文件结尾的文件类型的默认图标。
如何完成这个任务?

Rin*_*ind 10

“标志”作为二进制文件存储在目录中~/.local/share/gvfs-metadata

所以你需要gvfs-bin 安装 gvfs-bin以便能够提取它们并保存它们。哦,每个分区/卷/目录/文件都有一个文件(让事情变得更糟)。

要获取有关徽章的信息,您可以使用:

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

要为您使用的 {filename} 或 {folder} 设置 {icon}:

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

例子:

我在 ~/Music 中创建了文件夹 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 设置为文件夹标志的脚本(这基本上模仿了 Windowsfolder.png用作其上方目录标志的方法)。

#!/usr/bin/python

导入操作系统
from os.path 导入连接

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

对于 root、dirs、os.walk(cwdir) 中的文件:
    对于文件中的名称:
        如果 name.lower().find('.png') != -1:
            os.system('gvfs-set-attribute "'+root+'" metadata::custom-icon "'+name+'"')

您也许可以将其更改为您自己的包含文件的版本。

脚本使用风险自负