Answers:
AFAIK,不与内核API一起使用。如果存在这样的界面,则必须将其限制为超级用户,否则它将使任何人都可以访问他们没有搜索权限的目录中的文件。
但是您可以debugfs
在文件系统上使用它(一旦它被卸载)(假设您对块设备具有写访问权)。
debugfs -w / dev / block /设备
(用/dev/block/device
文件系统所在的实际块设备替换)。
然后,在的提示下debugfs
,输入
统计< 123 >(使用尖括号将123替换为实际的inode编号)以检查文件是否存在(inode的链接计数大于0)并且不是目录。
如果一切顺利,请输入:
ln < 123 > 路径/到/新文件创建硬链接(请注意,该路径是相对于文件系统根目录的)。其次是:
mi < 123 >来增加链接计数(Enter对于要在当前值加1的链接计数除外的所有字段,请按)。
根据您的用例,另一种方法可能是首先通过硬链接将所有候选文件收集在一个目录中,然后硬链接您特别感兴趣的文件。
如
mkdir -pm 0700 by-inode/{0..999}
find <path> ! -type d -printf "%i/%p\0" |
while IFS=/ read -rd '' i n; do
ln "$n" "by-inode/$((i/1000))/$i"
done
(假设您的inode数均小于1,000,000,请根据需要创建更多目录)。
然后,将您的inode分组为1000,并收集在by-inode/
树中。从那里,您可以根据需要链接它们。
请注意,尽管这意味着删除该文件<path>
不会因为该额外的硬链接而占用空间。