0

所以我正在尝试制作一个引用其他文件的脚本。即使文件移动,我也希望能够跟踪文件。所以我在想,如果我可以为文件分配一个唯一值,那么我可以通过搜索我分配给它的唯一值来找到文件的位置。

有一个更好的方法吗?

基本上我希望能够从它作为扩展属性的值中找到一个文件。但我不知道这是否可能。

任何帮助都会很棒。谢谢。

4

2 回答 2

1

您可以使用 inode 编号(用 显示ls -i /some/file),每个文件都是唯一的,并且在文件更改或移动时不会更改,除非您将文件移动到不同的分区。如果您不需要跟踪多个分区上的文件,那么这将是一个非常简单的解决方案。

要按 inode 编号查找文件,您可以使用find -inum <inode number>

于 2012-05-18T23:08:36.110 回答
0

如果你需要跨文件系统移动文件,你可以使用命令setfattr来设置文件的扩展属性,注意:你的内核必须能够做到这一点。没有一次性的命令来查找文件,但您可以创建一个简单的脚本来通过您的唯一键搜索文件。为你的文件设置一个类似于user.unique的键和你喜欢的字符串值,例如:n1234

setfattr -n user.unique -v n1234 yourfile

要检索值,您可以使用命令 getfattr

getfattr -n user.unique yourfile

或获取所有扩展文件属性:

getfattr -d yourfile

要测试您的内核是否能够处理文件系统类型的扩展属性:

zcat /proc/config.gz | grep FS_XATTR

要编写一个简单的脚本来使用扩展属性进行搜索,您可以参考这个Hack;在同一页面上,您可以阅读有关扩展属性的更多信息。

于 2013-09-05T13:04:43.357 回答