Nemo 或 Nautilus 等文件管理器可以访问文件的用户定义属性吗?

Nemo 或 Nautilus 等文件管理器可以访问文件的用户定义属性吗?

我不是技术专家,只是一个普通用户。我想要的是有一种方法可以向文件添加用户定义的属性,然后我可以使用该属性来搜索或控制显示哪些文件。例如,添加属性“foo”(针对 .pdf 或 .txt 等文件类型),并任意为该类型的任何文件的“foo”分配一个值,这样我就可以在文件列表中显示例如仅具有“foo”属性且值为“bar”的文件。对我来说,这将使查找和组织事物变得容易得多。

我发现“attr”、“getfattr”和“setfattr”终端命令似乎可以完成我想要的第一部分。但第二部分,从 Nemo 或 Nautilus 等文件管理器中访问这些属性似乎是不可能的。我搜索了 Nemo 扩展、Nemo 属性、xattr、user_attr,但都无济于事。我找不到任何可以访问或显示使用上述命令定义的扩展属性的东西。

我知道有一些应用程序可以管理特定文件类型,如音乐、视频、图片等类型,这些类型也具有扩展属性,但它们是定制的应用程序,我假设它们在内部管理它们被授予访问权限的文件和文件夹的属性,并且不使用文件系统本身的扩展属性功能。

我是不是漏掉了什么?是否可以从库存文件管理器中访问用户属性?非常感谢大家的建议

答案1

您需要的是 Linux(以及许多其他类 UNIX 系统)上的扩展属性、macOS 上的分叉以及 Windows 上的替代数据流。大多数平台都以某种形式支持此类内容,尽管这通常取决于文件系统是否支持存储它们的方式(您可能遇到的大多数系统都支持这种方式)。

但问题是,它们在实践中往往具有非常具体和有限的用途,主要是因为大多数人要么不想依赖它们,要么甚至不知道它们的存在。

实际使用包括:

  • 在 macOS 上,每个文件都有一个称为资源分叉的特殊分叉。它用于存储结构化元数据和其他相关数据。例如,macOS 上的大多数可执行文件都将其程序图标存储在资源分叉中。更重要的是,资源分叉中的数据可能被 Spotlight 编入索引,因此理论上你可以利用它来完成你正在谈论的事情。
  • 在 Windows 上,有一个特殊的备用数据流(我现在记不起它的名字了),用于存储从互联网下载的文件的原始域名。当您尝试运行从互联网下载的文件时,它会触发“您确定要执行此操作吗?”提示。
  • 在 Linux 上,文件功能(为可执行文件提供特殊附加权限的安全属性)存储为扩展属性。
  • 在 Linux 上,SELinux 和大多数其他强制访问控制系统内部使用扩展属性来存储安全上下文(用于确定哪些资源有权访问该文件的特殊标签)。
  • 许多分布式文件系统使用扩展属性来存储有关给定文件的内部元数据(例如,跟踪同一文件的其他副本所在的位置)。
  • 恶意软件可能会使用备用数据流、扩展属性或分支来向用户隐藏数据,因为它们通常对用户不可见。

除此之外,实际上并没有太多实际支持。大多数好的备份和归档工具都支持保存和恢复它们,但大多数其他用户应用程序只是忽略它们,宁愿使用内部数据库或内置在文件格式中的结构化元数据的固有支持(见下文)来存储与相关文件相关的元数据,因为这些允许它们在任何地方工作,而不仅仅是在文件系统级别支持它的系统上。


根据评论进行编辑:

大多数非纯文本文件格式以及一些纯文本文件格式(如 HTML)都支持在文件本身中存储某种形式的结构化元数据。通常,这仅限于与文件中的数据类型相关的元数据(例如,对于音频文件,这通常包括曲目标题、艺术家姓名、专辑名称以及用于编目音乐的类似内容),但有些格式允许自由格式的标记数据(例如,HTML 在技术上允许使用<meta>文档头中的标记来实现这一点)或仅存储任意文本的“注释”标记(ID3 和 EXIF 都有这种标记,通常用于存储媒体的文本描述)。

由于采用的方法种类繁多,因此试图在此描述它们的工作原理是不切实际的,但这里有一些链接,其中包括一些更常见方法的基本描述:

  • ID3是用于 MP3、AIFF 和 WAV 音频文件的标签格式。其他音频容器格式(例如 FLAC、WMA、Ogg 等)提供的标签格式使用大多数相同的字段。
  • Vorbis 评论是另一种大型音频标签格式,所有使用 Ogg 容器格式(Vorbis、Speex、Theora 和 Opus)以及 FLAC 的格式均使用此格式。
  • Exif定义一种用于标记图像和音频元数据的格式,这种格式在图像文件中使用非常广泛(但音频文件使用得并不多)。当您打开数码相机中的照片时,您可以通过这种方式查看照片的拍摄时间、曝光设置、拍摄地点等信息,并且可能还会应用色彩校正。
  • 分布式文件框架被各种文档格式(包括 PDF)用作嵌入元数据,或偶尔用作其自身文件中的独立元数据。从技术上讲,它是一种“元格式”,因为它不指定任何标签,而是将标签留给用户(因此理论上你可以将它用于任何用途)。
  • HTML<head>元素是此类元数据在纯文本格式中的处理方式示例。它用于 HTML 文档中存储文档标题、任意标记的元数据(包括文档作者或字符编码等内容)以及样式表、脚本和其他与文档相关的外部资源的链接。
  • 巴布亚新几内亚文件是自定义元数据处理方法的一个很好的例子,其中额外的元数据被存储为“辅助块”。它支持在其自己的标签下嵌入 Exif 元数据块,但也支持许多其他标签,涵盖 Exif 本身不包含的少数内容。

请注意,在许多情况下,尤其是媒体文件(图像、音频和视频),一些文件管理器支持将特定的知名且广泛使用的元数据标签的内容显示为文件列表的一部分。例如,Windows 资源管理器可以在显示音频文件时在其“详细信息”视图中显示大多数标准音频文件标签(如艺术家、专辑和曲目名称、曲目长度以及曲目和光盘编号),您甚至可以对这些标签的内容进行排序。

相关内容