재귀적으로 가장 큰 파일 찾기

재귀적으로 가장 큰 파일 찾기

가장 큰 디렉터리와 파일을 모두 재귀적으로 찾는 방법에 대한 항목은 많은 것 같지만 du디렉터리 집합에서 가장 큰 파일만 재귀적으로 찾는 방법에 대한 항목은 없는 것 같습니다.

기본적으로 가장 많은 양의 데이터가 포함된 디렉토리가 아닌 음악 라이브러리에서 가장 큰 .mp3 파일을 찾는 명령을 찾고 있습니다.

저는 OSX 10.8 시스템에서 bash를 사용하고 있습니다.

답변1

이렇게 해야 합니다(GNU 찾기 및 정렬 사용).

find . -type f -iname '*.mp3' -printf "%b %p\0" | sort -zn | tr \\0 \\n

파일 크기를 인쇄하지 않으려면 파일 이름만 인쇄하세요.

find . -type f -iname '*.mp3' -printf "%b %p\0" | sort -zn | awk -v RS=\\0 '{ gsub("^[0-9]+ ", "") ; print }'

답변2

나는 다음을 사용할 것이다:

du -a Music/ | grep "\.mp3$" | sort -n | tail -n1

제공된 Music디렉토리는 다음과 같습니다.

답변3

zsh 사용:

ls -ld -- **/*.mp3(.DOL[1,5])

5개의 가장 큰 일반 파일이 나열됩니다(디스크 사용량이 아닌 파일 크기 측면에서, 이는 반드시 동일하지는 않음). GNU에서는 크기가 줄어드는 순서대로 표시되도록 ls추가합니다 .-U

디스크 사용량은 다음과 같아야 합니다.

zmodload zsh/stat
zdu() zstat -A REPLY +block -- $REPLY
du -- **/*.mp3(.nDO+zdu[1,5])

물론 MP3의 재생 시간(초)과 같이 파일과 관련된 다른 측정항목에 맞춰 이를 조정할 수 있습니다.

mp3_duration() REPLY=$(exiftool -p '$Duration#' - < $REPLY)
print -rl -- **/*.mp3(.nDO+mp3_duration[1,5])

답변4

내 초기 가정은 틀렸습니다. 이 질문에는 이미 답변이 있습니다.여기:

find . -type f -print0 | xargs -0 du -s | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

하지만 나는 여전히 당신에게 추가 점수를 줍니다.

관련 정보