100MB가 넘는 파일이 두 개 이상 포함된 폴더를 찾고 계십니까?

100MB가 넘는 파일이 두 개 이상 포함된 폴더를 찾고 계십니까?

100MB가 넘는 파일이 두 개 이상 포함된 폴더만 나열하는 방법은 무엇입니까?

답변1

그리고 :findawk

모든 파일 나열 > 100M

$ find . -type f -size +100M
./bar/ok
./foo/okp
./foo/ok

이제 필터링하세요 awk.

$ find . -type f -size +100M -exec dirname {} + |
    awk '{dir[$0]++}END{for (i in dir) if (dir[i] >= 2) print i}'
./foo

요청 시 100M보다 큰 파일이 두 개 이상 포함된 디렉터리만 출력합니다.

구현이 여러 디렉토리 동시 지원을 지원하지 않는 경우 대신 dirname명령을 사용하십시오 .{} \;find

답변2

%hGNU 도구를 사용하면 100MiB( )보다 큰 모든 파일의 디렉터리를 인쇄하고 모든 중복 결과를 한 번에 인쇄할 수 있습니다 uniq -d.
줄바꿈이 포함된 디렉토리 이름을 처리하기 위해 NUL 문자( \0및 옵션 -z)를 줄 종결자로 사용하고 마지막 단계에서 이를 줄바꿈으로 변환합니다.

find . -type f -size +100M -printf '%h\0' | uniq -dz | tr '\0' '\n'

각 결과에 발견된 일치 항목 수(>=2)를 붙이려면 -c다음을 추가하세요 uniq.

find . -type f -size +100M -printf '%h\0' | uniq -cdz | tr '\0' '\n'

관련 정보