使用标签而不是文件夹的文件系统?

时间:2010-07-16 08:13:27

标签: tags filesystems

我的文件很乱,我尝试将它们组织成文件夹,其名称描述了它们在递归类故障中的含义,但后来我在寻找它时遇到了麻烦(一个文件可能存在于许多文件夹中。)

哪种文件系统允许我通过标签组合而不是使用文件夹来查找我的文件?

如果有这样的文件系统,我不确定操作系统如何应对,如此深度依赖文件夹系统。我遇到了tag2find,这并不算太糟糕;它解决了我现在寻找东西的问题,但它是一个应用程序,而不是文件系统。

11 个答案:

答案 0 :(得分:35)

以下是我使用谷歌找到的一些文件系统。

TagFS - “分层文件系统的标记语义” Stephan Bloehdorn和MaxVölkel撰写的论文,2006年 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187

dhtfs - “基于标记的文件系统,根据与文件关联的标记提供动态目录层次结构” 一个可用的实现,最新版本2007 http://code.google.com/p/dhtfs/

Tagsistant - “Linux和BSD的推理语义文件系统” 正在积极发展的项目 http://www.tagsistant.net/

Leaftag - “标记Linux桌面” 另一个实现,最后一个版本2006 http://www.chipx86.com/w/index.php/Leaftag

在与操作系统集成时,我认为不应该那么困难。操作系统严重依赖于文件系统层次结构,但基于标签的文件系统可以模仿目录结构。例如,在基于标签的文件系统中,路径/etc/init.d将给出所有标记有两个标签的文件,即'etc'和'init.d'。对于使用其他标签以及这两个标签标记的文件,其额外标签可以显示为/etc/init.d中的目录。如果有一个带有三个标签的文件a.txt,即'etc','init.d'和amp; 'asdf'然后'asdf'将显示为/etc/init.d中的目录,a.txt的完整路径将变为/etc/init.d/asdf/a.txt。

答案 1 :(得分:33)

我是Linux程序TMSU的作者,它允许您标记文件并在基于标记的文件系统中查看它们。

以下是一些示例用法:

$ tmsu tag track.mp3 music genre=indie-rock good year=1999
$ tmsu tag melody.mp3 music
$ tmsu tag DC123.jpg photo landscape country=italy year=2014
$ tmsu files music year = 1999
./song.mp3

虚拟文件系统:

$ mkdir mp
$ tmsu mount mp
$ ls mp
query  tags
$ ls tags
country  genre  good  landscape  photo  music  year
$ ls tags/music
genre  good  track.1.mp3  melody.2.mp3 year

文件名中的数字是用于保持文件名唯一的标识符。这些是返回文件原始位置的符号链接。

$ ls tags/music/good  # you can drill down
genre  track.1.mp3  year
$ ls "query/music and good"  # this directory gets automatically created
track.1.mp3

它仍处于积极发展阶段。在撰写本文时(2014年10月),0.4.2可用,但我很快就会发布0.5.0。

答案 2 :(得分:31)

你要求的是Database File System。我知道一个名为DBFS的Linux实验性实现。微软开始开发Windows Future Storage (WinFS) - 它计划与Vista一起发布,但由于技术问题,该项目被推迟,据我所知最终取消。 NTFS还能够存储文件的元数据,但不能存储到功能齐全的数据库文件系统。

将这样的文件系统集成到操作系统中对于操作系统的核心来说不应该那么复杂 - 它可以简单地坚持使用分层模型。复杂的部分是(图形)shell,必须向用户公开文件系统的结构和功能。

答案 3 :(得分:6)

Vista和Windows 7支持标记文件。 See this article

答案 4 :(得分:3)

试试tagfs。它是基于熔丝的用户空间文件系统。它可以在标记过滤器视图中显示源目录中的标记目录。

E.g。假设你有一个名为'india'和'photos'的目录'度假印度'和一个目录'度假西班牙'标记'西班牙'和'照片'。您可以输入路径'/ my_mountpoint / photos'来过滤所有照片。

目录通过简单的文本文件进行标记。目录中名为“.tag”的文件包含标记。多个标签由换行符分隔。

答案 5 :(得分:3)

我在问自己同样关于文件系统文件标签的问题时遇到了这个问题。然后我遇到了这个名为TaggedFrog的Windows XP / Vista应用程序,可以做这个伎俩。尚未尝试过,但看起来很有希望。

不期待通过1000个文件!无论如何,我将被迫在某个时候升级到Win7,并且可以尝试使用其原生标记。

答案 6 :(得分:2)

没有尝试过或在野外看过它们,例如

答案 7 :(得分:2)

Windows有TagsForAll。它是基于标签的文件管理器。标签可以具有分层结构。用户界面非常简单但很好。免费版本功能齐全,并在数据库中保存标签,Pro版本保存标签也在NTFS流中到文件。

答案 8 :(得分:2)

我发现Elyse的UI设计很精彩。 但它更像是一个静态系统,它无法自动查看文件夹并使用默认标签标记新文件。

答案 9 :(得分:1)

我一直在考虑基于标签的文件系统很长一段时间。 有没有人想过更激进和简单的方法? 完全忘记文件夹(仅出于编程的兼容性原因而模拟文件夹),并将所有标签直接放入文件名中。

(经典文件名)_Tag1_Tag2_Tag3 _....。(文件扩展名)

Mydocument_tag基于文件-system_tags_file-system_stackoverflow_folder_file-name_tagfs.txt

我总是希望在文件名中添加尽可能多的信息。您可以在每个可能的操作系统上找到数百万个文件中的所有内容。

唯一的限制是evey OS中的文件名长度不同,并且当前系统会变得混乱。

可以访问如下文件的高级操作系统:Mydocument.txt 并且可以在操作系统的最低级别编辑标签,例如今天更改文件名。 如果突然出现另一个Mydocument.txt,它会自动重命名为Mydocument(2).txt,依此类推。

我知道这个想法并非没有其他问题,甚至在这里都没有提到.....

但是这个想法是将标签存储在最基本的低级别可能性中,可以从所有过去和未来的文件系统访问。 所有FS的共同点是文件名。

答案 10 :(得分:0)

我认为没有(有)标记支持本身,但BFS支持一些非常酷的元数据功能。