나는 보통 다음 명령을 실행하여 각 디렉터리의 크기를 확인합니다.
du -sBM /* | sort -nr | head -n20
그러나 여기서 블록 크기 "M"을 지정하면 모든 값이 "M"으로 지정됩니다. 문제는 1M 이하로 내려가면 모든 데이터가 1M으로 보고된다는 점이다. 따라서 이 솔루션은 나에게 최적이 아닙니다. 다음 명령을 실행하면:
du -sh /* | sort -nr | head -n20
실제로 원하는 출력(블록 크기 G, M 및 K)을 얻었지만 모두 순서가 잘못되었습니다. 예를 들어:
618M /var
387M /lib
336M /home
260K /root
184K /dev
102M /boot
32M /etc
32K /tmp
27M /lib64
24K /opt
16K /lost+found
14M /sbin
8.0K /mnt
7.4M /bin
4.0K /srv
4.0K /net
4.0K /misc
4.0K /media
4.0K /cgroup
2.2G /usr
M을 G 위에, K를 M 위에 놓는 식으로 말이죠. 내 출력이 다음과 같기를 원합니다.
2.2G /usr
618M /var
387M /lib
336M /home
102M /boot
32M /etc
27M /lib64
14M /sbin
260K /root
184K /dev
32K /tmp
24K /opt
16K /lost+found
8.0K /mnt
7.4M /bin
4.0K /srv
4.0K /net
4.0K /misc
4.0K /media
4.0K /cgroup
여기에 내가 원하는 것을 수행하는 줄이 있습니까, 아니면 스크립트가 더 나은 솔루션입니까?
답변1
대신 sort
옵션 을 사용하십시오 .-h
-n
du -sh /* | sort -hr | head -n20