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

ape*_*son 6 command-line bash nautilus emblem

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

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

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

find /home/zach/Downloads/ -ctime +7 -exec trash {} \;
Run Code Online (Sandbox Code Playgroud)

编辑:

我解决了我自己的问题。

奖金:

为了详细说明我在做什么,我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
Run Code Online (Sandbox Code Playgroud)

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

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

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

find /home/zach/Downloads/ -maxdepth 1 -ctime +7 -exec /home/zach/Scripts/trasher.sh {} \;
Run Code Online (Sandbox Code Playgroud)

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

ape*_*son 8

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

gvfs-info -a metadata::emblems FOLDER

将检索文件夹/文件的标志和

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

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

  • 元数据存储在 ~/home/.local/share/gvfs-metadata 上。如果我理解正确的话,每个分区/卷有一个文件。二进制文件。你问我丑,但可能比xml文件快。 (3认同)