검색 대상을 나타내는 술어가 누락되었습니다 (예 :) -name
.
홈 디렉토리에서 이름으로 찾으려면 다음을 수행하십시오.
find ~ -name \*.pdf
와일드 카드 *
는 이스케이프 처리되어야합니다. 그래야 find가 손을 잡기 전에 쉘이 해석하지 않습니다. 사용 '*.pdf'
과 "*.pdf"
같은 영향을 미칠 것입니다 \*.pdf
.
대소 문자를 구분하지 않으려면 :
find ~ -iname \*.pdf
결과를 파일로만 정리하려면 (이름 표현식이이를 대신하여 처리하지만 이상한 이름의 디렉토리가있는 경우) :
find ~ -type f -iname \*.pdf
찾기가 심볼릭 링크를 따르는 지 확인하려면 (보통 검색 할 때 직접 수행하고 싶습니다) :
find ~ -follow -type f -iname \*.pdf
찾은 파일로 작업을 수행하려면 stdout 리디렉션을 사용하여 파일로 덤프 > filename
하거나 (예 : 끝에 압정 ) -exec
옵션을 사용하여 명령을 실행할 수 있습니다 (자세한 내용은 맨 페이지 참조). 후자는 한 번에 각 파일에 대해 명령을 실행합니다. xargs
찾은 파일을 한 번에 또는 한 번에 큰 덩어리로 다른 명령에 대한 인수로 전달 하는 것이 더 빠릅니다 . 예를 들어, 임시 파일 (인덱싱되지 않은)이 헤더 파일을 통과하는 경우 :
find ~ -follow -type f -name \*.h | xargs grep -nH "identifier"
공백이있는 파일 및 디렉토리가있는 경우 마지막 명령이 올바르게 작동하도록하는 마지막 확장명 :
find ~ -follow -type f -name \*.h -print0 | xargs -0 grep -nH "identifier"
find
에서 쓸모없는 것과는 거리가 멀다.