![从命令行获取文件的标志?](https://linux22.com/image/806020/%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E7%9A%84%E6%A0%87%E5%BF%97%EF%BC%9F.png)
我希望能够从命令行确定文件具有什么徽标。 有没有办法确定这一点? 另外,有没有办法从命令行应用徽标?
我通常会有一个 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 是否存在,如果存在,则测试它是否包含您选择的徽章。