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

我的文件是一团糟,我试图把它们组织成文件夹,用名称描述它们是什么,在递归类分解意义上,但后来我有麻烦再次找到文件时,我去寻找它(一个文件可能存在于许多文件夹)。

什么样的文件系统允许我通过组合标签而不是使用文件夹来找到我的文件?

如果有这样一个文件系统,我不知道操作系统将如何应对,因为它对文件夹系统的依赖是如此之深。我遇到了 Tag 2 find,它还不错; 它解决了我现在找东西的问题,但它是一个应用程序,而不是一个文件系统。

47039 次浏览

没有尝试过它们,也没有在野外见过它们,例如

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

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

Vista 和 Windows7支持文件标记

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

这里有一些文件系统,我发现使用谷歌。

TagFS-“分层文件系统的标记语义” 作者: Stephan Bloehdorn 和 Max Völkel,2006 Http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187

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

Tagsisant-“用于 Linux 和 BSD 的推理语义文件系统” 正在进行中的发展项目 Http://www.tagsistant.net/

叶标签-“为 Linux 桌面添加标签” 另一个实现,2006年的最新版本 Http://www.chipx86.com/w/index.php/leaftag

关于与操作系统的集成,我不认为它应该是那么困难。操作系统非常依赖于文件系统层次结构,但是基于标记的文件系统可以模拟目录结构。例如,在一个基于标记的文件系统中,路径 /etc/init.d将给出所有用两个标记(即‘ etc’和‘ init.d’)标记的文件。对于使用其他标记以及这两个标记进行标记的文件,它们的额外标记可以显示为/etc/init.d 中的目录。如果文件 a.txt 有三个标签,即‘ etc’、‘ init.d’和‘ asdf’,那么‘ asdf’将显示为/etc/init.d 中的目录,a.txt 的完整路径将变为/etc/init.d/asdf/a.txt。

试试 标签。这是一个基于保险丝的用户空间文件系统。它可以在标记筛选器视图中显示来自源目录的带标记的目录。

例如,假设你有一个名为“旅游印度”的目录,它的标签是“印度”和“照片”,还有一个名为“旅游西班牙”的目录,它的标签是“西班牙”和“照片”。您可以通过输入路径“/my _ mount point/photos”来过滤所有照片。

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

当我问自己关于文件系统文件标记的相同问题时,我遇到了这个问题。然后我偶然发现了这个叫做 TaggedFrog的 Windows XP/Vista 应用程序,它就是 。还没试过,但看起来很有希望。

不过我可不想翻阅1000多份文件!无论如何,我将被迫在某个时候升级到 Win7,并且可以尝试它的原生标记。

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

(经典文件名) _ Tag1 _ Tag2 _ Tag3 _... . . (文件扩展名)

Mydocument _ tag-based-file-system _ tag _ file-system _ stackoverflow _ file-name _ tagfs. txt

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

唯一的限制是每个操作系统的文件名长度不同,而且在当前系统中会变得很混乱。

一个高级操作系统可以访问这样的文件: Mydocument.txt 标签可以在操作系统的最底层编辑,就像今天改变文件名一样。 如果突然出现另一个 Mydocument.txt,它会自动重命名为 Mydocument (2) . txt,以此类推。

我知道这个想法不是没有额外的问题,甚至没有提到这里... ..。

但是,这个创意是要存储标签在最基本的低水平的可能性,这可以从所有过去和未来的文件系统访问。 所有 FS 的共同点是文件名。

我是 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。

窗户有 TagsForAll。它是基于标记的文件管理器。标记可以具有层次结构。用户界面非常简单,但很好。免费版全功能和保存标签在数据库,专业版保存标签也在 NTFS 流到一个文件。

我发现 Elyse的 UI 设计非常棒。 但它更多的是一个静态系统,它不能监视文件夹和标记新文件的默认标记自动。