如何在没有GUI的情况下在Thunar中设置徽标?

我想使用脚本向Thunar中的文件添加标志,但我找不到任何关于此的文档。

是否有可能做到这一点? 如果是这样,怎么样?

这里问了同样的问题,但他们提到了我的系统上不存在的~/.cache/Thunar/metafile.tdb文件。 我认为这个问题和答案已经过时了。

从版本1.6开始,Thunar已经开始使用gvfs-metadata守护进程来存储元数据。 元数据存储在~/.local/share/gvfs-metadata ,但是您无法从文件中读取它(我认为它以某种二进制格式存储 )。 要读取元数据,请使用gvfs-info命令,如下所示:

 gvfs-info -a metadata:: /some/location 

这将打印出/some/location的元数据。

如果要更改元数据,可以使用gvfs-set-attribute命令,如下所示:

 gvfs-set-attribute /some/location -t stringv metadata::mdtype value 

/some/location是要编辑其元数据的文件/文件夹的位置, -t stringv告诉命令期望字符串输入, mdtype设置要更改的元数据类型(例如emblems )和new valuevalue mdtype的元数据。 例如:

 gvfs-set-attribute Downloads -t stringv metadata::emblems emblem-default 

Downloads文件夹提供default徽标。

将值设置为none以删除标志。 您必须重新启动文件管理器才能查看更改。


我写了一个小脚本,允许您一次更改多个文件夹/文件的标志:

 run() { cd # make sure we're in the home directory echo 'What emblem do you want to apply?' read emblem if ! [ -z $emblem ]; then for i in $@ do echo 'Changing stuff...' $(gvfs-set-attribute $i -t stringv metadata::emblems $emblem) done echo 'Done!' else echo 'Emblem must be specified! Exiting...' exit fi } init() { if [[ -z $@ ]]; then echo "No arguments provided" else run $@ fi } init $@ 

资料来源:

  • Nautilus邮件列表

  • Thunar FAQ

  • 如何从bash更改目录的图标/徽标