find 명령에서 디렉토리 제외

find 명령에서 디렉토리 제외

특정 파일을 검색할 때 디렉터리를 제외하는 방법을 알아보려고 합니다.

저는 WSL2를 사용하고 있으므로 전체 파일 시스템을 검색하지 않도록 /mnt/ 폴더를 제외하고 싶습니다.

저 할 수 있어요:

find . -path './mnt' -prune -o -print

/mnt/ 폴더를 제외한 모든 디렉터리와 파일을 인쇄하지만 이를 올바른 구문과 결합하여 특정 파일을 찾는 데 어려움을 겪고 있습니다.

find -name example.txt

답변1

find . -path ./mnt -prune -o -name example.txt -print

이는 다음의 약어입니다.

find . '(' -path ./mnt -a -prune ')' -o '(' -name example.txt -a -print ')'

AND( , 생략된 경우 암시적) 는 -aOR( )보다 우선순위가 높습니다 .-o다른 많은 언어.

또는:

find . ! '(' -path ./mnt -prune ')' -name example.txt

이는 다음의 약어입니다.

find . '(' ! '(' -path ./mnt -a -prune ')' -a -name example.txt ')' -a -print

-print없기 때문에 기본 동작행동표현식의 술어는 else입니다.

관련 정보