찾기에서 .Library 디렉토리 제외

찾기에서 .Library 디렉토리 제외

제외하는 방법을 여러 가지 시도했습니다.. 도서관내 홈 디렉터리에서 무언가를 찾으려고 할 때 디렉터리가 표시되지만 find어쨌든 많은 줄이 인쇄됩니다."허가가 거부되었습니다"~에서도서관목차.

실수

그걸로 만들었어스도그리고로부터뿌리, 하지만 아무것도 도움이 되지 않습니다. 나는 -prune, , -not -path그리고 다음을 사용해 보았습니다 grep -v.

find . -name "*kate*" ! -path /Users/yves/Library
find . -name "*kate*" -path "*Library*" -prune -o -print
find . -name "*kate*" -not -path "./Library/*"
find . -name "*kate*" | grep -v Library

내가 뭘 잘못했나요?

답변1

현재 작업 디렉터리 내의 디렉터리를 find반복하고 싶지 않은 것 같습니다 . 이 경우 다음과 같습니다.Library

find . -path ./Library -prune -o -name '*kate*' -print

Library현재 작업 디렉토리(아래 .) 에 있는 디렉토리뿐만 아니라 정리하려는 디렉토리인 경우 :

find . -name Library -prune -o -name '*kate*' -print

이렇게 하면 ! -path './Library/*'find가 경로가 패턴과 일치하는 파일을 선택하지 않도록 지시하지만 디렉터리와 해당 하위 디렉터리를 find탐색하려는 시도를 중단하지 않습니다. 디렉토리 트리 탐색 방법에 ./Library영향을 미치는 유일한 조건자는 비표준 조건자입니다(널리 지원되기는 하지만) .find-prune-maxdepth

-depth-delete(그리고 암시적으로 비표준 -depth)은 순회 순서에 영향을 미치고(해당 분기 이전에 나가기) -prune무효화를 유발합니다. -follow이제 옵션으로 대체된 은 디렉토리에 드롭된 기호 링크를 -L나타내므로 탐색에도 영향을 줍니다 .find

답변2

다음 구문이 필요합니다 find . -not -path '*/Library' -type f -name '*kate*'. 폴더를 찾는지 파일을 찾는지는 모르겠지만 -type그에 맞게 변경해야 합니다.

관련 정보