디렉토리의 모든 소프트 링크를 찾는 방법은 무엇입니까?

디렉토리의 모든 소프트 링크를 찾는 방법은 무엇입니까?

/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

관련 정보