
거의 비어 있는 모든 음악 폴더를 찾아서(나중에 삭제) 싶습니다(Banshee는 음악 파일만 삭제하고 거기에 있는 다른 파일은 삭제하지 않음).
나는 다음을 시도했다:
find -type d -size -500k \;
하지만 더 큰 파일이 포함된 폴더도 표시됩니다.
find -type d -size -500k -exec du {} \;
정확한 사이즈를 보여줍니다.
N보다 작은 폴더만 표시하도록 find cmd를 수정하는 방법은 무엇입니까?
답변1
이것을 다른 스크립트로 직접 파이프할 필요가 없는 한 제가 사용하는 명령 중 하나는 다음과 같습니다.
뒤 . | 정렬 -rn
이렇게 하면 가장 작은 폴더가 크기와 함께 인쇄된 목록의 맨 아래에 배치됩니다. 더 큰 것을 필터링하려면 조금 더 많은 작업이 필요합니다.
답변2
N 바이트 미만이 포함된 폴더를 삭제하려는 경우 다음 하나의 라이너가 작동합니다.
du | awk '$1 <= 500 { print "rm -rf \"" substr($0, length($1)+2) "\""}' | sh
이것은 무엇을 합니까? 연속적으로:
du
경로와 함께 디렉토리 크기를 인쇄합니다.$1 <= 500
첫 번째 열이 500 미만인지(500바이트보다 작은 경우) 테스트하는 조건입니다.print
이상한 인쇄물로rm -rf "/path/to/small/dir"
| sh
실행할 수 있도록 sh에 파이프합니다.
sh에 파이프하는 대신 xargs를 사용하여 수행할 수도 있지만 저는 이 방식에 익숙합니다.