是否可以批量/从命令行分配/更改文件的自定义图标?

是否可以批量/从命令行分配/更改文件的自定义图标?

实际上,我说的是Nautilus 脚本,我有很多。虽然我更喜欢没有图标的菜单,但我无法阻止图标显示在 Nautilus 上下文菜单项中打开用脚本

尤其是,所有脚本都显示相同的图标,这看起来一点也不好看。所以,如果我无法阻止它们,至少我希望它们使用与每个脚本的功能更相关的图标。

通过以下方式可以轻松为单个文件分配自定义图标文件属性但我总共有82 个 Nautilus 脚本眼下!

当你在终端中输入gvfs-info /path/to/file命令时,你会看到如下一行:metadata::custom-icon: file:///usr/share/icons/NITRUX-Buttons/apps/scalable/accessories-text-editor.svg

我想知道是否有可能通过批处理/从命令行编辑此行(无论它在哪里)?

答案1

我在撰写此问题时显示的列表中看不到它,但后来我在右侧的相关问题列表中看到了类似的问题和我正在寻找的答案:

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

基本上看来这个命令是:

gvfs-set-attribute -t string /path/to/your/file metadata::custom-icon file:///path/to/your/icon.png

笔记:

1. 这似乎不适用于 Ubuntu 12.10 之前的版本中的 Nautilus 脚本。

2. 当以 root 身份运行 Nautilus 时,这似乎对 Nautilus 脚本也不起作用。

答案2

使用这里介绍的想法,更改 Nautilus 或 Nemo 的图标将需要这样做:

#!/bin/bash
# Written by Alfonso R. Reyes
# make hard links for multiple file selection
# be careful of not moving the hard link to a different file system
HARDLINK_ICON=${HOME}/.local/share/icons/mine/folder-green-activities-icon.png
for arg 
do
    # make a hard link of the selected file
    if [[ -f "$arg" ]] 
    then
        HARDLINK_NAME="Hard Link to $arg"
        ln "$arg" "${HARDLINK_NAME}"
        gio set -t string "${HARDLINK_NAME}" metadata::custom-icon file:///${HARDLINK_ICON}
    fi
done

相关内容