在UNIX上查找到文件的所有符号链接和硬链接


9

如果我在UNIX文件系统中有特定文件,是否可以使用bash查找到该文件的所有链接(包括符号链接和硬链接)?如果每个命令都需要不同的命令,它们是什么?

Answers:


8

使用GNU尝试一下find

find /start/dir -L -samefile /file/to/check -exec ls -li {} \;

输出示例:

1234704 -rw-r--r-- 2 user1 user1 1134 2009-09-11 11:12 ./x1
1234704 -rw-r--r-- 2 user1 user1 1134 2009-09-11 11:12 ./x2
1234983 lrwxrwxrwx 1 user1 user1 2 2009-10-31 16:56 ./testx -> x1
2345059 lrwxrwxrwx 1 user2 user2 2 2010-01-03 16:17 ./x3 -> x1

您可以使用-ls代替,-exec但是它将显示目标文件的inode和其他信息,而不是单个文件。


此输出显示硬链接和符号链接?用->箭头表示的符号链接?
aaaidan

@aaaidan:是的,这是正确的。x1和x2的索引号相同,表示它们是硬链接。箭头表示符号链接。使用-L-samefile导致两者都被列出。如果省略-L,则不跟随符号链接(请参阅参考资料man find)。
暂停,直到另行通知。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.