100MB가 넘는 파일이 두 개 이상 포함된 폴더만 나열하는 방법은 무엇입니까?
답변1
그리고 :find
awk
모든 파일 나열 > 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
%h
GNU 도구를 사용하면 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'