[linux] 심볼릭 링크 :이 파일에 링크 된 모든 파일 찾기

안녕하세요, 저는이 작업을 리눅스에서해야합니다.

  • 주어진 : 파일 이름 ‘foo.txt’
  • 찾기 : ‘foo.txt’에 대한 심볼릭 링크 인 모든 파일

어떻게하나요? 감사!



답변

호출되는 특정 파일에 대한 링크를 찾으려고하는 경우 foo.txt,이것이 유일한 좋은 방법입니다.

find -L / -samefile path/to/foo.txt

반면에, 당신은 단지에 대한 링크 찾기 위해 시도하는 경우에 어떤 이름이 될 일 파일 foo.txt, 다음 같은 뭔가를

find / -lname foo.txt

또는

find . -lname \*foo.txt # ignore leading pathname components


답변

파일의 inode 번호를 찾은 다음 동일한 inode 번호를 가진 모든 파일을 검색합니다.

$ ls -i foo.txt
41525360 foo.txt

$ find . -follow -inum 41525360

또는의 lname옵션을 시도해보십시오. find예를 들어 상대 심볼릭 링크가있는 경우에는 작동하지 않습니다.a -> ../foo.txt

$ find . -lname /path/to/foo.txt


답변

symlinks깨진 심볼릭 링크를 검색 할 때도 편리한 유틸리티 를 사용하는 것을 선호합니다 . 설치 방법 :

sudo apt install symlinks

현재 폴더 및 하위 폴더의 모든 심볼릭 링크 표시 :

symlinks -rv .
  • -r: 재귀
  • -v: verbose (깨진 심볼뿐만 아니라 모든 심볼릭 링크 표시)

특정 심볼릭 링크를 찾으려면 grep다음을 수행하십시오.

symlinks -rv . | grep foo.txt


답변