从命令行获取文件的标志?

从命令行获取文件的标志?

我希望能够从命令行确定文件具有什么徽标。 有没有办法确定这一点? 另外,有没有办法从命令行应用徽标?

我通常会有一个 cron 任务来删除 ~/Downloads 中超过 7 天的文件,但我希望能够只删除没有特定标志的文件(我的种子文件)。我一直在手动应用这些标志,但如果我也能自动应用,那就太棒了。

我通常的 cron 作业只是一个简单的 find 命令:

find /home/zach/Downloads/ -ctime +7 -exec trash {} \;

编辑:

我解决了我自己的问题。

奖金:

为了详细说明我到底在做什么,我用它deluge-torrent来管理我的下载。我现在使用执行插件在 torrent 完成时运行此脚本:

#!/usr/bin/env bash
# deluge gives the download directory name as the third argument
gvfs-set-attribute -t stringv "$3" metadata::emblems ubuntuone-unsynchronized

然后我创建了我的trasher.sh(这需要trash-cli包):

#!/usr/bin/env bash
[[ "$(gvfs-info -a metadata::emblems $*)" =~ "ubuntuone-unsynchronized" ]] || trash "$*"

现在,我只需将我的 cron 修改为:

find /home/zach/Downloads/ -maxdepth 1 -ctime +7 -exec /home/zach/Scripts/trasher.sh {} \;

瞧!现在 Deluge 可以管理其下载,而我的清理脚本可以安全地清理旧文件,而不会干扰种子的播种。

答案1

<Juhaz>在 freenode 上的 ##gnome 中得到了它。

gvfs-info -a metadata::emblems FOLDER

将检索文件夹/文件的徽标并

gvfs-set-attribute -t stringv FOLDER metadata::emblems EMBLEM

将允许您设置文件夹/文件的徽标。

答案2

这篇文章解释徽章信息如何存储在 ~/.nautilus/metafiles 下的 XML 文件中。首先,您需要测试与每个下载相关的 XML 是否存在,如果存在,则测试它是否包含您选择的徽章。

相关内容