I have a directory and a bunch of sub-directories like this:
- directory1 (sub-dir1, sub-dir2, sub-dir3, sub-dir4, sub-dir5...........and so on, hundreds of them...)
How do I find out what is average size of the sub-directories?
And how do I find what is the maximum size of the sub-directories?
All using Unix commands...
Thanks.
If you only have directories and not files in directory1
, then the following two "commands" should give you the size (in bytes) and name of the largest directory and the average of their sizes (in bytes), respectively.
$ du -sb directory1/* | sort -n | tail -n 1
$ du -sb directory1/* | awk ' { sum+=$1; ++n } END { print sum/n } '
If there is also ordinary files within directory1
, these will be counted as well with the examples above. If ordinary files should not be counted, the following might be more appropriate.
$ find directory1/ -mindepth 1 -maxdepth 1 -type d -exec du -sb {} \; | sort -n | tail -n 1
$ find directory1/ -mindepth 1 -maxdepth 1 -type d -exec du -sb {} \; | awk ' { sum+=$1; ++n } END { print sum/n } '
I once had an issue with ext3, which only allows 31998 sub directories per directory. Ext4 allows ~64k.
to get the largest size (KB), use -b for bytes
du -sk */|sort -n|tail -1
to get average size (KB)
du -sk */|awk '{s+=$1}END{print s/NR}'