如何以编程方式更改文件的图标?

Kri*_*per 22 icons nautilus scripts files

如果我在 Nautilus 中选择一个图标并选择“属性”,我可以单击那里显示的图标。这给了我一个文件选择器对话框来选择一个新的图标图像。

我想通过某种脚本来做到这一点,以便我可以一次将相同的图标分配给许多文件。或者获取图标列表和文件列表并将它们分配给彼此。

有什么办法可以做到这一点吗?bash 或 Python 中的东西会很棒,但我会尽我所能。

请注意:

  • 我不是在问如何更改文件类型的图标。
  • 我不是在问如何更改启动器上的图标。

在此处输入图片说明

Rom*_*uet 28


要从命令行更改这些图标,您可以使用以下命令:

gvfs-set-attribute -t string /path/to/your/file metadata::custom-icon file:///path/to/your/icon.png
Run Code Online (Sandbox Code Playgroud)

您可以根据需要在 bash 脚本中使用此命令。

如果您运行命令并且图标没有立即更改,您可以使用以下命令安装xautomation包:

sudo apt-get install xautomation
Run Code Online (Sandbox Code Playgroud)

最后,使用命令 xte”在bash中“sendkey”像“F5”一样刷新..
一个小例子是:

#!/bin/bash
gvfs-set-attribute -t string /home/hermes/testicon metadata::custom-icon file:///home/hermes/Desktop/applet_blank.png
sleep 3
xte "key F5"  
Run Code Online (Sandbox Code Playgroud)

我希望这对你有用。


abu*_*bua 10

吉奥(侏儒 > 3.xx)

由于 gvfs 工具已经过时,您应该使用gio它!

这些命令与上述命令非常相似。

例如,如果您想获取有关图标集的信息,请使用

gio info ~/path/to/your/dir/or/folder | awk '{/custom-icon/ print $2}' | cut -c8-
Run Code Online (Sandbox Code Playgroud)

假设您已经制作了自定义图标,这将输出图标的完整路径。要设置自定义图标,只需使用命令

gio set -t string /path/to/your/dir/or/folder metadata::custom-icon file:///path/to/your/icon.svg
Run Code Online (Sandbox Code Playgroud)