KDE Baloo 文件标记是否有命令行或脚本界面?

KDE Baloo 文件标记是否有命令行或脚本界面?

KDE 的巴鲁允许通过添加扩展来标记文件文件系统属性在文件系统级别(如果支持),同时保留所有标记文件的单独索引。使用“ ”可以在 Dolphin 中搜索tags:/MyTag

是否有类似的方法在命令行或脚本中搜索标记文件,也许使用baloosearch命令行实用程序或通过 DBUS 接口?

答案1

有点晚了,但也许这会有所帮助:

kioclient5 ls tags:/MyTag

或者

baloosearch //?query=tag:MyTag

答案2

您可以使用getfattr&setfattr命令。

getfattr -d {filename}

会给你标签,像这样:

$ getfattr -d 20180718_123507.jpeg 
# file: 20180718_123507.jpeg
user.xdg.tags="Vars,Fleur/lys"

setfattr {-n name} [-v value] {filename}

将把给定的值放入扩展文件属性“name”中。在我的示例中,我想将标签中的“Fleur”更改为“plantes”,因此我输入了以下命令:

$ setfattr -v "Vars,plantes/lys" -n user.xdg.tags 20180718_123507.jpeg

并且确实有效:

$ getfattr -d 20180718_123507.jpeg 
# file: 20180718_123507.jpeg
user.xdg.tags="Vars,plantes/lys"

笔记:KDE 标签结构是分层的,因此您可以拥有子标签。

例子:下面我给出了一个 bash 脚本,允许替换命令行中给出的所有文件的标签。

#!/bin/bash
before=$1
pattern=".*"$1".*"
shift
after=$1
shift
echo Replacing "$before" by "$after" in the tags...
for f in $@ ; do 
    tags=$(getfattr --only-values -d $f)
    if [[ $k =~ $pattern ]] ; then 
        newtags=${tags/$before/$after}
        setfattr -n "user.xdg.tags" -v $newtags $f
        echo $f 
        fi
    done

您还可以查看tagctl公用事业。

相关内容