jul*_*ien 82 linux search file-management tags
我一直在寻找一种方法来标记我的文件并根据这些标签搜索/过滤它们。
这是我的(更新的)要求:
我一直希望有一些基本的文件系统和 coreutils 来处理这个问题,但我还没有认真考虑过这个问题。
同时,我将回顾这里提到的 beagle 和 metatracker,看看它们的表现如何。
好的,所以小猎犬有巨大的 gnome 依赖项,跟踪器也不错,但仍然有一些我不喜欢的依赖项...
一直在做更多的研究,要走的路很可能是扩展文件属性。
这是大多数最新文件系统的本机解决方案,但它们还没有得到很好的支持(大多数 coreutils 默认销毁它们,例如 cp 需要 -a 标志来保留它们)。想听听关于使用它们的一些想法,同时我自己尝试一些技巧,尽管这可能需要提出一个新问题。
Pau*_*ane 28
I've just released an alpha of my new program that attempts to provide this functionality. It currently meets some, but not all, of your requirements. It may be of interest to you anyway. It provides a command-line tool for tagging and a virtual file-system for browsing (where tags are represented by directories).
any file readable by the user can be tagged freely
Yes.
a user can search for files matching one or several tags
Yes. Either via the command-line tool or by browsing the tag directories in the virtual file-system.
files can be moved around without losing the previously associated tags
不会。但是应用程序会存储标记文件的指纹,这些指纹用于帮助识别移动的文件。提供了一个“修复”命令,它将更新移动文件的路径。(显然,如果文件被移动和修改,这种机制就会失效。)
系统可以轻松备份
是的。这是一个简单的 Sqlite 3 数据库文件。
不依赖任何桌面环境
是的。没有依赖关系,因为它可以作为一个虚拟文件系统运行,所以它可以在任何支持符号链接的程序中作为一个文件系统来细读。
如果涉及任何 gui,则必须有 cli 回退
目前没有图形界面。
Cha*_*art 15
目前还不清楚你想要什么样的搜索。如果您希望它在 unix 中的任何地方工作,而不仅仅是您的主目录,并且您只想进行基于路径名的搜索,那么以下方案是可行的,有一点 shell 技巧,并使用标准locatedb:
.path-tags;_)的每个文件都有一个链接$TAG_$FILE -> ../$FILE 我把locate-tag脚本的细节留给你;它应该是两行或三行,仅使用locate命令和 shell 黑客。(如果你有兴趣,我可以写一个)。
一些 KDE 小伙伴谈到了这种元数据方案,尽管我不记得细节了。
还应该可以基于此方案使用类似的脚本进行更复杂的内容检查测试find。
关于更新要求的想法
$TAG_$INODE_$FILE并且我们有一种有效的方法来找到哪些路径具有给定的 inode,那么我们可以这样做,只有当我们移出文件系统时才会丢失标签。复制文件可能会带来一些麻烦,这显然比我最初的建议更复杂。后记您在对(1) 的回答中向我展示 的链接(2)所描述的“反向 inode-lookup”文件可用于提供一些额外的基础设施。我们可以在反向查找文件上运行一个服务,它检查标签文件名中给出的每个 inode 是否与标签指向的文件(如果有)的 inode 匹配。如果没有匹配,则可以执行所需的手术(inode 还存在吗?它在哪里?),并且反向查找文件被变异或重新生成,并且标签符号链接被更新。
我预计会遇到一个棘手的情况:如果标记文件不在标记所说的位置,反向查找文件说它仍然存在,但浪子文件不在查找文件所说的位置,查找文件不在日期?有几种方法可以处理这种情况,但都不是很理想。除此之外,这整个任务似乎是 Perl 非常适合的那种事情......
小智 7
没有人提到,但您绝对应该查看扩展文件系统属性。例如 ext4 有它们。有工具 getfattr 和 setfattr 来处理它们。当然,您必须编写一些 shell 脚本来搜索带有 sometag 标记的文件。关于提到的问题,所有答案都是“是”。您应该只考虑它依赖于文件系统。
我认为这可能满足您的所有要求。无论如何,这是一段很酷的代码:
http://pages.stern.nyu.edu/~marriaga/software/oyepa
GUI 需要 Qt,但有一个用于搜索的命令行应用程序,并且所有标签实际上都在文件名中的事实使得从 cli 操作标签|文件变得微不足道。
| 归档时间: |
|
| 查看次数: |
43494 次 |
| 最近记录: |