단순 찾기 명령이 실행되지 않습니다.

단순 찾기 명령이 실행되지 않습니다.

저는 Linux를 처음 접했고 현재 다음 명령을 실행하려고 합니다.

find ~ -name apt.no

apt.no로 나열된 다른 디렉토리 내에서 을(를) 찾고 있습니다 montrose-files.

셸에서 응답이 없으며 새 줄만 생성됩니다. 왜 결과가 나오지 않는지 설명해 주시겠습니까?

bbcharlieca@myvm:~$ find ~ -name apt.no
bbcharlieca@myvm:~$ █

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

답변1

귀하의 명령은 귀하의 디렉터리와 그 아래의 모든 디렉터리 내에서 * 호출된 find ~ -name apt.no파일이나 디렉터리를 찾습니다 . (은 자신의 홈 디렉토리를 나타냅니다.)apt.no$HOME~

자신의 홈 디렉터리 내에 있지 않으면 montrose-files검색되지 않으며 대상 파일도 찾을 수 없습니다. 예를 들어 가 montrose-files다른 경로 아래에 있는 경우 해당 경로를 지정해야 합니다.

find /path/to/montrose-files -name 'apt.no' -print

montrose-files혼란스럽게도 이전에 홈 디렉토리에 검색되지 않는 기호 링크를 만든 경우 find기본적으로 기호 링크를 따르지 않습니다. 다음 두 가지 방법 중 하나로 이 문제를 해결할 수 있습니다.

find ~ -follow -name 'apt.no' -print
find ~/montrose-files/ -name 'apt.no' -print

첫 번째 접근 방식에서는 기호 링크를 알려 find줍니다 follow. 일부 버전에서는 find이 방법이 좋지 않을 수 있습니다. 왜냐하면 심볼릭 링크가 루프 주변을 가리키면 구조를 여러 번 통과하게 될 수 있기 때문입니다.

두 번째 접근 방식에서는 후행 슬래시를 추가하여 기호 링크가 실제 디렉터리 대상으로 확인되도록 강제합니다.

마지막으로, 모든 경우에 내가 검색 중인 파일 이름을 인용했다는 점에 유의하세요. 간단한 경우에는 아무런 차이가 없지만 파일 이름의 알 수 없는 부분(예: apt.*)과 일치시키기 위해 와일드카드를 사용하기 시작할 때 작은따옴표를 사용하여 와일드카드가 셸에서 처리되지 않도록 해야 합니다 find. 그들을). 주장을 인용하는 습관을 들이는 것이 좋습니다.


* 기술적으로는 모든 항목과 일치하지만 홈 디렉터리에 파이프, 소켓 또는 장치 노드가 있을 가능성은 없습니다.

관련 정보