使用 Ext4 在 Linux 中使用不同元数据的多个硬链接

使用 Ext4 在 Linux 中使用不同元数据的多个硬链接

Ext4 文件系统(或者 Linux 理解的另一种文件系统)是否可以将不同的元数据(如修改时间、所有者、访问权限)分配给引用相同数据的多个硬链接。 (当然,我知道对于尺寸来说这是不可能的)。

理由:我想创建一个简单的重复数据删除存档。文件可能(并且经常会)包含完全相同的数据,但元数据不同。我的想法是为每个文件创建一个硬链接,然后相应地设置元数据。但改变一个硬链接似乎也会改变其他硬链接。 (或者也许我的问题有另一种解决方案?)

答案1

对于 Ext4 来说,硬链接只是指一个索引节点,其中包含所有元数据。

因此,您不能使用硬链接拥有不同的元数据。

我不确定你到底想做什么,但你可以看看gitzip或软链接。它们都有处理重复数据的方法。

答案2

不可能将文件内容与包含文件元数据(时间戳、所有者、权限等)的索引节点分离。如果有多个元数据集,大多数元数据都会出现问题:不仅仅是大小(显然需要与内容匹配),还有修改时间(写入文件时必须在每个 inode 中更新)、所有者(如果有多个所有者,谁控制元数据?)等等。

如果您需要比 user-write-group 更灵活的权限,您可以使用访问控制列表,ext4 开箱即用地支持。

您可以使用绑定文件系统呈现具有一些不同元数据的目录树视图。您无法以这种方式更改所有内容,但您可以重新映射用户和组并更改权限。

如果您确实需要具有不相关元数据但具有相同内容的不同文件,并且由于空间问题您不想重复文件内容,则可以使用以下文件系统:重复数据删除。在应用程序中,您几乎什么都不做,让文件系统来解决问题。 Ext4 不进行重复数据删除。ZFS可以做到,但是有成本RAM 和可靠性。Btrfs也可以这样做,有类似的担忧。

相关内容