如何找到目录的每个软链接?

如何找到目录的每个软链接?

/etcdir 为例。在我的系统上它有 144 个链接。由于 dir 不能有硬链接(这是我的理解),因此该数字144应指软链接(1 个原始 + 143 个软链接)。

$ ll -i
total 84
      2 drwxr-xr-x  20 root root  4096 Aug 18 01:21 ./
      2 drwxr-xr-x  20 root root  4096 Aug 18 01:21 ../
     12 lrwxrwxrwx   1 root root     7 Aug 18 01:19 bin -> usr/bin/
1048577 drwxr-xr-x   4 root root  4096 Sep  1 15:53 boot/
5636097 drwxr-xr-x   2 root root  4096 Aug 18 01:21 cdrom/
      2 drwxr-xr-x  23 root root  4920 Sep  3 11:20 dev/
 262145 drwxr-xr-x 144 root root 12288 Sep  3 09:34 etc/

我试图追踪软链接(出于好奇并提前学习以备将来使用)但没有运气。
我试过 -

$ sudo find  /  -not -path "/mnt/*" -samefile /etc  
/etc
find: ‘/run/user/1000/doc’: Permission denied 
...

答案1

目录有硬链接,但它们不是任意的。每个目录都包含一个到其父目录的硬链接..;你的/etc包含 142 个子目录。另外两个是/etc本身和/etc/.

要查找符号链接,您需要告诉find他们跟随他们:

find -L / -xdev -samefile /etc

与其排除您不感兴趣的路径,不如列出您想要的所有挂载点。感兴趣并告诉find不要进入其他文件系统。这避免了处理/proc/sys

相关内容