X개 이상의 이미지가 포함된 폴더 나열

X개 이상의 이미지가 포함된 폴더 나열

여러 이미지가 포함된 특정 디스크의 모든 폴더 목록을 반환하는 방법이 있습니까?

검색은 재귀적이어야 하지만 X는 그렇지 않아야 합니다.

X=100의 예:

Folder A
|_ folder A1 (containing 100 pictures)
|_ folder A2 (containing 50 pictures)
|_ 50 pictures

"폴더 A1"만 반환되어야 합니다.

답변1

나는 모든 그림이 .pngand로 끝난다고 가정합니다.X=100

find ./ -type d -exec sh -c 'count=$(ls "${0}"/*.png | wc -l); if [ "${count}" -ge 100 ];then echo "${0}"; fi ' {} \;

편집하다

아래와 같이 extensions파일 수와 값에 관계없이 확장할 수 있습니다.X

export files='png jpg gif'
export X='100'
find ./ -type d -exec \
sh -c 'count=$(for i in ${files}; do ls "${0}"/*.${i};done | wc -l); \
if [ "${count}" -ge "${X}" ];then echo "${0}"; fi ' {} \;

답변2

각 이미지에 대해 해당 이미지가 있는 디렉터리의 이름을 인쇄합니다.

find \( -name \*.png -or -name \*.gif -or -name \*.jpg \) -printf '%h\n' |

uniq는 정렬된 입력이 필요하지만 find파일을 무작위로 인쇄합니다. (내 테스트에서는 find -depth도움이 되지도 않았습니다. 이유를 묻지 마세요.)

sort |

각 디렉터리 이름에 대해 발생 빈도를 알려주세요.

uniq -c |

마지막으로 원하는 행을 필터링합니다.

while read count dir; do
    if [ "$count" -ge 100 ]; then echo "$count $dir"; fi
done

관련 정보