Is this possible, and what would the command be?
-
1Do 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?– falstroOct 27, 2009 at 14:55
-
all directories at any depth, and the the total file size next to each directory would include it's sub directories.– kylexOct 27, 2009 at 15:00
4 Answers
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.
-
-
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.– CarlFOct 27, 2009 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
-
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.