使用标签而不是文件夹的文件系统?
我的文件是乱七八糟的,我尝试将它们组织成文件夹,用名字来描述它们在recursion类的分解意义上,但是后来我在找它的时候又遇到了问题(一个文件可能存在于许多文件夹中)。
什么文件系统将允许我通过标签的组合而不是使用文件夹来查找我的文件?
如果有这样一个文件系统,我不知道如何操作系统将如何深深依赖文件夹系统。 我遇到了tag2find ,这并不算太坏。 它解决了我现在find的东西的问题,但它是一个应用程序,而不是一个文件系统。
你所要求的是一个数据库文件系统 。 我知道一个名为DBFS的 Linux实验实现。 微软开始开发Windows未来存储(WinFS) – 计划随Vista一起发布,但由于技术问题,项目被推迟,据我所知最终取消。 NTFS还能够存储文件的元数据,但不能扩展全function的数据库文件系统。
把这样的文件系统整合到操作系统中对于操作系统的核心来说不应该是那么复杂 – 它可以简单地坚持分层模式。 复杂的部分是(graphics)shell,必须向用户公开文件系统的结构和function。
这里是我使用谷歌发现的一些文件系统。
TagFS – Stephan Bloehdorn和MaxVölkel撰写的“分层文件系统的标记语义”论文http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187
dhtfs – “基于标记的文件系统,基于与文件相关的标记提供dynamic目录层次结构”一个可用的实现,最后发布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
与操作系统集成,我不认为这应该是困难的。 操作系统深深依赖于文件系统层次结构,但基于标签的文件系统可以模拟目录结构。 例如,在一个基于标签的文件系统中,path/etc/init.d
会给出所有标记有两个标签(即“etc”和“init.d”)的文件。 对于标有其他标签以及这两个标签的文件,它们的额外标签可以在/etc/init.d目录中显示为目录。 如果有一个带有三个标签(如'etc','init.d'和'asdf')的文件a.txt,那么asdf就会出现在/etc/init.d目录中,并且a.txt的完整path将成为/等/ init.d /的ASDF / A.TXT。
我是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。
Vista和Windows 7支持标记文件。 看到这篇文章
当我问自己关于文件系统文件标签的问题时,我遇到了这个问题。 然后,我遇到了这个名为TaggedFrog的 Windows XP / Vista的应用程序, 可能会伎俩。 还没有尝试过,但看起来很有希望。
不期待经过1000年的文件! 无论如何,我将不得不升级到Win7在某个时候,可以尝试其本地标记。
试试标签 。 这是一个基于熔丝的用户空间文件系统。 它可以在标签filter视图中显示源目录中的标签目录。
例如,假设您有一个名为“印度度假”和“照片”的目录,以及一个名为“西class牙度假”和“照片”的目录。 您可以通过inputpath'/ my_mountpoint / photos'来过滤所有照片。
目录通过一个简单的文本文件进行标记。 目录中名为“.tag”的文件包含标签。 多个标签由换行符分隔。
有Windows的TagsForAll 。 这是一个基于标签的文件pipe理器。 标签可以具有分层结构。 用户界面非常简单,但很好。 免费的版本function齐全,并保存在数据库中的标签,Pro版本也保存在NTFSstream中的标签到一个文件。
我发现Elyse的UIdevise非常棒。 但更多的是一个静态的系统,它不能监视文件夹,并自动标记带有默认标签的新文件。
我不认为(本身)标记支持本身,但BFS支持一些非常酷的元数据function。
我也一直在考虑基于标签的文件系统。 有没有人想过更激进和简单的方法? 要完全忘记文件夹(仅用于程序兼容性的模拟文件夹),并将所有标记直接放入文件名中。
(经典文件名)_Tag1_Tag2_Tag3 _….。(文件扩展名)
Mydocument_tag基于文件-system_tags_file-system_stackoverflow_folder_file-name_tagfs.txt
我总是喜欢在文件名中尽可能多地input信息。 您可以在每个可能的操作系统上以百万计的文件查找所
唯一的限制是evey OS中不同的文件名长度,并且与当前的系统混乱。
一个先进的操作系统可以像这样访问一个文件:Mydocument.txt标签可以在操作系统的最低级别编辑,比如今天改变文件名。 如果突然出现另一个Mydocument.txt,它会自动重命名为Mydocument(2).txt等等。
我知道这个想法是不是没有额外的问题,甚至没有提到这里…..
但是这个想法是要把标签存储在最基本的低级别的可能性中,可以从所有过去和将来的文件系统中访问。 而所有的FS都有一个共同的文件名。