파일이 하드 링크인지 심볼 링크인지 확인하는 방법은 무엇입니까? [복사]

파일이 하드 링크인지 심볼 링크인지 확인하는 방법은 무엇입니까? [복사]

에 파일이 있습니다 ~/file.txt.

다음을 통해 하드 링크를 만들었습니다.

ln ~/file.txt ~/test/hardfile.txt

및 심볼릭 링크 파일:

ln -s ~/file.txt ~/test/symfile.txt

지금,

  1. 어떤 파일이 하드 링크인지 확인하는 방법은 무엇입니까?
  2. 하드 링크가 따라오는 파일을 찾는 방법은 무엇입니까?

우리는 심볼릭 링크 파일을 찾을 수 있지만 ->하드 링크는 어떻습니까?

여기에 이미지 설명을 입력하세요.

답변1

-rw--r--r-- 2 kamix users 5 Nov 17:10 hardfile.txt
            ^

이는 파일에 있는 하드 링크의 수입니다. "하드 링크"는 실제로 두 디렉토리 항목 사이에 있으며 실제로는 동일한 파일입니다. 다음 출력을 보면 알 수 있습니다 stat.

stat hardfile.txt | grep -i inode
Device: 805h/2053d      Inode: 1835019     Links: 2

링크 수가 2라는 점에 다시 한 번 주목하세요. 이는 이 파일이 어딘가에 다른 목록이 있음을 나타냅니다. 이것이 다른 파일과 동일한 파일이라는 것을 아는 이유는 동일한 inode 번호를 갖기 때문입니다. 불행히도 이것이 (inode 번호를 통해) 찾을 수 있는 유일한 방법입니다.

findinode로(예: 를 사용하여) 파일을 찾는 가장 좋은 방법에 대한 몇 가지 아이디어가 있습니다.이 Q&A.

답변2

하드 링크된 파일에는 여러 개의 링크( 2권한 플래그 다음에 오는 링크)가 있습니다. stat다음 명령을 사용하여 이 정보를 쉽게 추출 할 수 있습니다 .

$ stat --printf '%h\n' hardfile.txt
2

다른 값과 인쇄 방법에 대한 자세한 내용은 stat( ) 맨페이지를 참조하세요.man 1 stat

관련 정보