UNIX에서 파일에 대한 모든 기호 및 하드 링크 찾기


9

UNIX 파일 시스템에 특정 파일이있는 경우 bash를 사용하여 해당 파일에 대한 모든 링크를 기호 및 하드로 찾을 수 있습니까? 각각에 대해 다른 명령이 필요한 경우 무엇입니까?

답변:


8

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 및 기타 정보가 표시됩니다.


이 결과는 하드 링크와 sym 링크를 보여주고 있습니까? -> 화살표로 표시된 심볼릭 링크?
aaaidan

@aaaidan : 네, 맞습니다. x1과 x2의 inode 수는 하드 링크임을 나타냅니다. 화살표는 심볼릭 링크를 나타냅니다. 사용 -L하고 -samefile모두가 발생하는 나열합니다. 생략 -L하면 기호 링크가 따르지 않습니다 (참조 man find).
추후 공지가있을 때까지 일시 중지되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.