여러 이미지가 포함된 특정 디스크의 모든 폴더 목록을 반환하는 방법이 있습니까?
검색은 재귀적이어야 하지만 X는 그렇지 않아야 합니다.
X=100의 예:
Folder A
|_ folder A1 (containing 100 pictures)
|_ folder A2 (containing 50 pictures)
|_ 50 pictures
"폴더 A1"만 반환되어야 합니다.
답변1
나는 모든 그림이 .png
and로 끝난다고 가정합니다.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