如何标记 Linux 文件系统中存储的所有内容?

如何标记 Linux 文件系统中存储的所有内容?

如何使用 BTRFS 文件系统在 Linux 中完成以下任务?

在 Mac OS X El Capitan 中,您可以使用标签来组织文件。您可以标记文件和文件夹,以便更轻松地查找它们。标签适用于所有文件和文件夹。您可以向任何文件(或文件夹?)添加多个标签。

https://support.apple.com/kb/PH22180?locale=en_US

当然,这些标签的目的是为了通过标签查找/搜索。 Mac OS X Finder 包含对标签的支持。

在Linux中,如果我必须使用命令行工具来完成标记和按标签搜索(以及相关功能),那也没关系。

答案1

一种可能性是使用扩展属性,参见属性(7)进行介绍。

(但我相信它们现在还没有被广泛使用;在 Debian 和相关发行版上,您需要安装该xattr软件包然后使用该xattr命令)

答案2

就简单的文件标记而言,根本问题是标记存储在哪里/如何存储?如果文件系统没有对异构文件类型标记的本机支持,您会发现两种常见(尽管远非理想)的方法是文件名嵌入边车。前者意味着您的标签实际上已插入到文件名中,例如foo.txt变成foo-[tag1,tag2].txt。后者,sidecar,意味着标签存储在与要标记的文件位于同一目录或公共子目录中的文件中。例如foo.txt可能伴随着.foo.txt.标签

这些听起来都不太吸引人,不是吗?嵌入让我觉得很丑陋,但至少你不必担心如果你像 sidecar 那样移动或删除文件,如何将标签保留在文件中。

但显然这些权衡对于一些人来说是可以接受的,并且有一些对产品感到满意的客户,例如......

我听说过一些关于开源跨平台解决方案的积极消息,该解决方案称为标签空间。默认情况下,它使用嵌入式方法,但有一个支持 sidecar 的 Enterprise 版本。该功能集很吸引人,用户界面看起来不错且易于使用。看起来还有蜜蜂如果您想与其他客户端集成或创建自己的客户端(例如 CLI)。如果您想将文件保存在多个平台上,那么跨平台方面就值得一提。

对于这个和其他类似的解决方案,这一切都取决于您是否可以忍受......让我们面对现实......有点哈克标签持久化细节! :)

编辑:以下是使用嵌入标签的人提供的一些信息:将标签添加到文件 (PDF) 并从命令行或脚本进行处理线程的其余部分可能也很有趣。

答案3

最简单的方法是创建一个tags/目录,并在其中为每个标签创建目录。然后将您的文件链接(硬链接可能是最好的)到标签目录中以为其分配该标签。不过,您必须处理的一件事是具有相同名称的文件,因此可能需要在文件名中添加摘要编号。这种方法的唯一缺点(除了缺乏易于使用的工具之外)是,每个目录大约有 10,000 个文件后,性能就成为一个问题。

相关内容