디렉터리의 파일 수를 (재귀적으로) 가져오지만 특정 이름을 가진 디렉터리는 제외하는 방법

디렉터리의 파일 수를 (재귀적으로) 가져오지만 특정 이름을 가진 디렉터리는 제외하는 방법

이는 다음과 매우 유사합니다.이것질문이 있지만 더 나아가야 합니다. 저는 Synology 드라이브를 사용하고 있으며 @eaDir무시하고 싶은 수많은 디렉터리(및 해당 디렉터리의 파일)가 있습니다 . 어떻게 해야 하나요?

이것은 숨겨진 파일(내가 원하는 것)에 잘 작동하는 재귀 명령입니다. 하지만 디렉토리 이름을 제외하도록 어떻게 변경합니까 @eaDir?

find .//. ! -name . -print | grep -c //

답변1

지정된 디렉토리로 이동하고 싶지 않으면 before를 @eaDir사용하면 안 됩니다 .!-name

 mkdir -p a/@eaDir
 mkdir -p b/c/@eaDir
 mkdir -p d/e/f
 touch a/@eaDir/xxx
 touch b/yyy
 touch b/c/@eaDir/xxx
 touch d/e/f/yyy
 find . -name '@eaDir' -prune -o -print

당신에게 줄 것입니다 :

.
./b
./b/yyy
./b/c
./a
./d
./d/e
./d/e/f
./d/e/f/yyy

그리고

find .//. -name '@eaDir' -prune -o -print | grep -c // 

당신에게 줄 것입니다 :9

이름이 일치하면 -name '@eaDir'아래 트리의 나머지 부분을 건너뛰고('-prune'), 그렇지 않으면 이름을 인쇄합니다( -o -print)

관련 정보