안녕하세요, 저는이 작업을 리눅스에서해야합니다.
- 주어진 : 파일 이름 ‘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