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

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

我想使用脚本将徽标添加到 Thunar 中的文件,但我找不到有关此内容的任何文档。

有可能做到这一点吗?如果可以,怎么做?

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

答案1

Thunar 从 1.6 版开始使用 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 value设置value为的元数据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 $@  

资料来源:

相关内容