6

I want to get the size of all directories within a specific directory. I was thinking something like

find . -type d -exec du -sh {} \;

But that returns all directories recursively. How can I limit the depth?

6 Answers6

7

Add -maxdepth 1 to your find parameters.

platforms
  • 1,128
6

Why use find at all and not simply glob for directories?

du -shc */
2

This one should do the job efficiently :

du -hc --max-depth=1

One big difference I think of is that, when encountering hardlinked files, they will be counted only once. In a find loop, they will be counted once per base directory. [Is it correct english?]

1

You can use the -maxdepth option.

EEAA
  • 110,608
1

I'm using this one,

ls | xargs du -sh 

basically there are many ways to skin a cat :)

quanta
  • 52,423
Danie
  • 1,370
1

You can also do this:

du -ah .

What it does is to take the subdirectories of the current directory, find its individual's size and in the end, it prints the total size.