Using ls to list directories and their total sizes
Is it possible to use ls
in Unix to list the total size of a sub-directory and all its contents as opposed to the usual 4K
that (I assume) is just the directory file itself?
total 12K
drwxrwxr-x 6 *** *** 4.0K 2009-06-19 10:10 branches
drwxrwxr-x 13 *** *** 4.0K 2009-06-19 10:52 tags
drwxrwxr-x 16 *** *** 4.0K 2009-06-19 10:02 trunk
After scouring the man pages I'm coming up empty.
Try something like:
du -sh *
short version of:
du --summarize --human-readable *
Explanation:
du
: Disk Usage
-s
: Display a summary for each specified file. (Equivalent to -d 0
)
-h
: "Human-readable" output. Use unit suffixes: Byte, Kibibyte (KiB), Mebibyte (MiB), Gibibyte (GiB), Tebibyte (TiB) and Pebibyte (PiB). (BASE2)
du -sk * | sort -n
will sort the folders by size. Helpful when looking to clear space..
or du -sh * | sort -h
used when human-readable mode
du -sh * | sort -h
This will be displayed in human readable format.
To list the largest directories from the current directory in human readable format:
du -sh * | sort -hr
A better way to restrict number of rows can be
du -sh * | sort -hr | head -n10
Where you can increase the suffix of -n
flag to restrict the number of rows listed
Sample:
[~]$ du -sh * | sort -hr
48M app
11M lib
6.7M Vendor
1.1M composer.phar
488K phpcs.phar
488K phpcbf.phar
72K doc
16K nbproject
8.0K composer.lock
4.0K README.md
It makes it more convenient to read :)