하드 링크 찾기가 실패하는 이유는 무엇입니까?

하드 링크 찾기가 실패하는 이유는 무엇입니까?

다음 위치에 있는 하드 링크를 찾는 방법은 다음과 같습니다 /tmp.

$ for file in /tmp/*; do  if [ "$(stat -c %h -- "$file")" -gt 1 ]; then  ls "$file" -l ; fi; done
total 0
srwxrwxr-x 1 t t 0 Mar 20 23:01 debconf.socket
total 0
srwxrwxr-x 1 t t 0 Mar 20 22:58 debconf.socket
total 0
srwxrwxr-x 1 t t 0 Mar 20 23:00 debconf.socket
total 0
-rw-rw-r-- 2 t t 39675802 Mar 23 01:06 /tmp/dd
total 0
lrwxrwxrwx 1 t t 5 Mar 21 12:52 d1 -> ../d1
total 676
-rw------- 1 t t 688899 Mar 22 21:46 image.png
total 0
total 352
-rw-r--r-- 1 t t 345008 Jun  2  2008 iwlwifi-5000-1.ucode
-rw-r--r-- 1 t t   2114 Jun  4  2008 LICENSE.iwlwifi-5000-ucode
-rw-r--r-- 1 t t   5099 Jun  4  2008 README.iwlwifi-5000-ucode
total 360
-rw-r--r-- 1 t t 353240 Apr 23  2009 iwlwifi-5000-2.ucode
-rw-r--r-- 1 t t   2114 May 19  2009 LICENSE.iwlwifi-5000-ucode
-rw-r--r-- 1 t t   5097 May 19  2009 README.iwlwifi-5000-ucode
total 348
-rw-r--r-- 1 t t 340688 Apr 20  2011 iwlwifi-5000-5.ucode
-rw-r--r-- 1 t t   2046 Dec  2  2010 LICENSE.iwlwifi-5000-ucode
-rw-r--r-- 1 t t   4922 Dec  2  2010 README.iwlwifi-5000-ucode
total 4
-rw-rw-r-- 1 t t 50 Mar 22 23:23 xauth-1000-_0
total 0
srw------- 1 t t 0 Mar 22 23:23 kdeinit4__0
srwxrwxr-x 1 t t 0 Mar 22 23:23 klauncherhX1003.slave-socket
total 0
total 4
-rw-rw-r-- 1 t t 402 Mar 13 07:39 note~
total 8596
-rw-r--r-- 1 t t     283 Feb  8  2106 content.xml

탐지된 파일의 대부분은 해당 파일에 대한 참조만 있으므로 하드 링크가 아닙니다 1. 왜 이러한 오탐지가 발생하는지 궁금합니다. 하드 링크를 찾는 방법은 무엇입니까?

답변1

또한 루프에 디렉터리를 포함합니다. 제외:

for file in /tmp/*; do  if [ -f "$file" ] && [ "$(stat -c %h -- "$file")" -gt 1 ] ...

파일 시스템에 따라 디렉토리의 하드 링크 수가 1보다 높을 수 있습니다.무엇인가 추가되기 전에 새 디렉토리의 하드 링크 수가 2인 이유는 무엇입니까?

ls -ld "$file"을 사용하여 내용 대신 디렉터리를 나열할 수도 있습니다 .

관련 정보