제외하는 방법을 여러 가지 시도했습니다.. 도서관내 홈 디렉터리에서 무언가를 찾으려고 할 때 디렉터리가 표시되지만 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
그에 맞게 변경해야 합니다.