사람이 읽을 수있는 파일 크기 정렬, 크기 식별자 (G, M, K)를 고려한 숫자 정렬을 사용하여 목록을 정렬하려면 어떻게해야합니까? du -sh
예를 들어 ” “출력을 정렬 할 수 있습니까 ?
문제점 : 파일 / 폴더를 나열하고 크기별로 정렬하는 문제를 고려하십시오. 다음을 실행하여이를 달성 할 수 있습니다.
du -s * | sort -n
파일 / 폴더를 크기별로 정렬하여 나열합니다. 그러나 인쇄 된 크기 값은 바이트 단위 (또는 선택한 경우 메가 바이트 또는 기가 바이트)입니다.
사람이 읽을 수있는 값을 기준으로 정렬 할 수 있으므로 비슷한 것을 실행할 수 있습니다.
du -sh * | <human-readable file sort>
2.0M 이후에 1.5GB 폴더가 표시됩니다.
답변
답변
GNU coreutils> = 7.5를 사용하십시오.
du -hs * | 정렬 -h
편집 : GNU 버전을 사용 du --version
하고 sort --version
있는지 여부를 사용하여 버전을 확인할 수 있습니다 . homebrew를 사용하는 경우 gdu
및 을 사용해야 gsort
합니다.
답변
1MB보다 큰 파일이 걱정되는 경우이 명령을 사용하여 파일을 정렬하고 awk를 사용하여 크기를 MB로 변환 할 수 있습니다.
du -s * | sort -n | awk '{print int($1 / 1024)"M\t"$2}'
또한 크기를 가장 가까운 MB로 반올림합니다. 원하는 단위로 변환하여 수정할 수 있습니다.
답변
이것은 공백이나 아포스트로피가있는 파일 이름을 처리하며 xargs -d
또는 sort -h
다음을 지원하지 않는 시스템에서 작동합니다 .
du -s * | sort -n | cut -f2 | tr '\n' '\0' | xargs -0 -I {} du -sh "{}"
결과 :
368K diskmanagementd
392K racoon
468K coreaudiod
472K securityd
660K sshd
3.6M php-fpm
답변
다른 하나는 다음과 같습니다.
$ du -B1 | sort -nr | perl -MNumber::Bytes::Human=format_bytes -F'\t' -lane 'print format_bytes($F[0])."\t".$F[1]'
당신은해야 할 수도 있습니다
$ cpan Number::Bytes::Human
먼저.
답변
du -sk * | 정렬 -n | awk ‘{print $ 2}’| f를 읽는 동안; du -sh “$ f”수행; 끝난
답변
이 명령은 크기를 MB 단위로 정렬합니다
du --block-size=MiB --max-depth=1 path | sort -n