특정 확장자를 가진 파일이 하나 이상 있는 디렉터리 수를 계산합니다.

특정 확장자를 가진 파일이 하나 이상 있는 디렉터리 수를 계산합니다.

.mp3 확장자를 가진 파일이 최소 1개 이상 있는 디렉터리(현재 디렉터리) 수를 어떻게 알 수 있나요?

재귀가 필요하지 않습니다. 현재 디렉터리의 디렉터리 구조는 예를 들면 다음과 같습니다.

1/blabla.mp3
2
3/something.mp3
4
5

이 명령은 mp3 파일이 포함된 디렉터리 2개를 반환해야 합니다.

답변1

find . -type f -name "*.mp3" -exec dirname {} \; | uniq | wc -l

답변2

find . ! -name . -prune -type d -exec sh -c '
   yes | head -1 |
   find "$1/." ! -name . -prune -type f \
      \( -name '*.[mM][pP]3' -o -name '.*.[mM][pP]3' \) \
      -exec sh -c "read foo" \; -print
' {} {} \; | wc -l |
sh -c 'read n;echo "There are $n dirs with mp3 files."'

외부 "찾기"는 현재 디렉터리의 모든 하위 디렉터리를 선택합니다. 그런 다음 각 파일에 최소 1개의 mp3 파일(숨겨진 파일 포함)이 포함된 경우 각 파일에 대해 하강을 수행하고 해당 파일 내에서 대소문자를 구분하지 않고 비재귀 검색을 수행합니다.

관련 정보