Is this possible, and what would the command be?

migrated from stackoverflow.com Oct 27 '09 at 15:25

This question came from our site for professional and enthusiast programmers.

  • 1
    Do you mean like, all directories (regardless of at what depth)? Do you mean containing 10mb in the directory itself, or 10 mb in the directory or any subdirectory? – falstro Oct 27 '09 at 14:55
  • all directories at any depth, and the the total file size next to each directory would include it's sub directories. – kylex Oct 27 '09 at 15:00

du is the easiest way. Grab the directories of interest with perl.

du -m . | perl -ne '@l = split();print "@l\n" if $l[0]>=10'
du -k /<root-of-interest> | sort -n 

Then look at the tail for the large directories. You want all that are report greater than 10000.

  • du is the way to go. du|xdu makes it more visibile too.. – falstro Oct 27 '09 at 14:57
  • I might type "du --max-depth=1 | sort -g | less" but that's just a personal preference. Of course the "max-depth" flag only exists in GNU du. – CarlF Oct 27 '09 at 15:45

Do like this:

find {/path/to/directory} -type f -size +{file-size-in-kb}k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

Remember to don´t put the {}'s.

In your case do like this:

find / -type f -size +10000k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'
  • 3
    this finds files, not directories – falstro Oct 27 '09 at 14:56
  • Ops, sorry, i didn't see. Sorry! – Nathan Campos Oct 27 '09 at 14:58

The du answers above are closer to what you want, but you might also want to try out kdirstat. Its a cool gui tool that shows all your dirs, what's in them, what the content is, and has various tools to delete or move files. There's even Windows (WindDirStat) and MacOSX (Disk Inventory X) clones.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.