Sort du intelligently
The du
command is a nice tool for telling you the disk usage of your files:
$ du *
[...]
1928 system.log
136 system.log.0.bz2
112 system.log.1.bz2
0 uucp
552 vnetlib
[...]
I find that adding the -h
flag (which produces more human-readable output) is often very helpful for me:
$ du -h *
[...]
964K system.log
68K system.log.0.bz2
56K system.log.1.bz2
0B uucp
276K vnetlib
[...]
Now if I could just sort that…
$ du -h * | sort -n
[...]
0B ./uucp
3.0M ./com.apple.launchd
4.0K ./eventmonitor
4.0K ./performance
5.9M ./asl
[...]
As you can see, this doesn’t work so well on OS X (as of 10.8.5). What can be done?
If you’re on Linux you probably have a recent version of the sort program, specifically v7.5 or later, which has its own
-h
flag:$ du -h * | sort -h [...] 76K lightdm 380K apache2 1.1M installer 1.4M auth.log 1.5M cricket [...]
If you’re stuck with something older, you can use a little utility like duhsort:
$ du -hs * | duhsort [...] 704K tests/pr 928K ChangeLog 1012K tests/misc 1.1M old 1.5M doc [...]
duhsort was really created to be used in shell functions and aliases. For example:
$ duh() { du -h "$@" | duhsort; } $ duh | tail -5 3.1M ./gnulib-tests 3.2M ./tests 5.9M ./lib 25M ./po 50M . $ duh old doc 244K old/sh-utils 328K old/textutils 548K old/fileutils 1.1M old 1.5M doc $ duh -s old doc 1.1M old 1.5M doc