Linux tip: du --max-depth=1

27 September 2007   6 comments   Linux

Powered by Fusion×

There are lots of fancy programs for Linux to find out where your gigabytes are sitting and filling your hard drive, the simplest of them is du (from disk usage). The trick is to use the --max-depth=1 option so that you get a view of which folder weighs how much. Try this:

peterbe@trillian:~/tmp $ du -h --max-depth=1
900K    ./Example-Receipts
4.0K    ./Foredettinghelgen
44K     ./IssueTrackerBlogInterface
1.9M    ./IssueTrackerProduct
12K     ./fried-mugshots
2.1M    ./ies4linux-2.0.5
4.8M    ./pyexcelerator
52K     ./levenstein
4.0K    ./newitpdesign
4.7M    ./photoresizing
69M     ./databases
4.5M    ./i18nextract-sa
532M    .

Pretty nifty! That way you can quickly see which folder contains the most junk so that you can free up some hard drive space.

To sort it I don't know how to reformat it into human readable values but there's the command:

peterbe@trillian:~/tmp $ du --max-depth=1 | sort -n
4       ./Foredettinghelgen
4       ./newitpdesign
12      ./fried-mugshots
44      ./IssueTrackerBlogInterface
52      ./levenstein
900     ./Example-Receipts
1856    ./IssueTrackerProduct
2140    ./ies4linux-2.0.5
4528    ./i18nextract-sa
4796    ./photoresizing
4872    ./pyexcelerator
70392   ./databases
544608  .


You can use -h option for human readable values. (i assume the convertion of bytes to Megabytes, kilobytes etc is what you by human readable values, )
du -h --max-depth=1.

Comment for a very old post... Came across ur site while i was googling for something.

- SS
Thanks .. Very helpful Post :)
Workaround to sort AND have human-readable values:

du -BM --max-depth=1 | sort -n

(or to see it sorted largest first):

du -BM --max-depth=1 | sort -nr

Caveat: This displays everything in Megabytes, so the smallest unit you will see is 1M. If you need to see it in Kilobytes just change the "M" to a "K".
human readable just add du -hx --max-depth=1 | sort -n
You can get that in human readable form using two commands:

To get the total amount of each subdirectory of the actual one (does not summarizes):
du -hs * | sort n

To get the total amount of the actual whole tree:
du -hs

I have been not able to summarize the whole tree showing the size of each first subdirectory. Something like 'du -hs * ..' or 'du -hs .' does not work for that.
Frédéric Esnault
To display disk usage with human readable values and sort them using the human readable value order, use this command :

du -h | sort -h

Your email will never ever be published

Related posts

Spellcorrector 0.2 24 September 2007
Future of Web Apps (quick summary and thoughts) 04 October 2007
Related by keywords:
Find largest directories with du -k 29 December 2006