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

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

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

答案1

使用 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 和其他信息,而不是单个文件。

答案2

如果你没有 GNU Find,你可以这样做:

find / -inum "$(ls -i /file/to/check | cut -d ' ' -f 1)"

但它对符号链接不起作用。

相关内容