我们如何强制跨存储设备的文件使用相同的索引节点号?我能想到的唯一方法是使用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 ...
您可以使用制表符分隔的字段并使用grep
或awk
从普通文件中选择它们。远不止这些,我至少会建议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}'