修复跨存储设备的文件的 inode 编号

修复跨存储设备的文件的 inode 编号

我们如何强制跨存储设备的文件使用相同的索引节点号?我能想到的唯一方法是使用dd,但这需要复制整个容器,即使您只是添加一个文件。

我想为一大批文件分配固定的 ID 号。文件内容肯定会改变(所以 md5sum 不起作用)。 ID 不能包含在文件中。

目的是建立一个小型文档管理系统,其中每个传入文件被分配一个ID、一些标签/评论/状态。

文件中无法写入任何内容。因此,其中的某些模板/标题是禁忌。

所以,基本上每个文件都应该有一个以下形式的记录: ID: 5683958754 Date: xxxx-xx-xx Tags: picture, message ordoc Action: store Origin: client x or web-page www.sample.com ...

将此类元信息与所有文件联系起来的简约方法是什么?

答案1

我们如何强制跨存储设备的文件使用相同的索引节点号?

你不能。

另一方面,既然您已经描述了您的需求,

每个文件应该有一个记录,格式如下: ID: 5683958754 Date: xxxx-xx-xx Tags: picture, message ordoc Action: store Origin: client x or web-page www.sample.com ...

您可以使用制表符分隔的字段并使用grepawk从普通文件中选择它们。远不止这些,我至少会建议sqlite。但接下来我们就真正进入应用程序架构了。

我会考虑这样的事情

id <tab> date-in-seconds <tab> tag1,tag2,tag <tab> action <tab> filename <tab> filepath <tab> origin

然后你可以通过 id 键

id=1234
awk -F$'\t' id="$id" '$1==id {print $6}'

或者按文件名

filename='rhubarb.txt'
awk -F$'\t' key="$filename" '$5==key {print $6}'

或者甚至按日期范围

mindate=$(date --utc --date '1 mar 2019 19:00' +%s)
awk -F$'\t' key="$mindate" '$2>key {print $6}'

相关内容