dus is meant to have better output than GNU du -s, “which simply summarized the current directory’s size (recursively),” and bar chart for visualization of sizes.

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSyLnMh9g34kWUo3toCqbikxQuwDTJEkvLeIu3jOyDv_DC-9IArkLW12tYbOvxYvzJ4GweF56_KK0unvWgw50CSIMjxIopSXeFR5Cl1H8I3Fn-uxrCxSIMy5cBCUBrb-Au4_eKpNVggKk/s800-Ic42/2015-12-19--08%25253A19%25253A28.png

Watch this video for more usages

It has quite a few of options to use, watch this video for examples of some of them:

-0 Use null character (‘0’) as target separator for stdin.
-c <count> Number of items to printout of result head.
--color Colorized output for easier interpretation.
-d Don’t enter directory. Only used if a single directory is defined as target.
-h Print human readable sizes (e.g., 1K 234M 5G).
-i Inverted/reverted order of listed result.
-n Enable natural sort order if sort order is a string representation.
-s <...> Sort by property; ‘size’, ‘name’, ‘atime’, ‘mtime’, ‘ctime’.
-t <ms> File/directory parse timeout given in milliseconds.

You can also pipe in list of directories or files to dus, it reads from standard input as well and gives you the output you want.

dus was created by Rikard Johansson on 2015-10-16, written in C++14 under GPLv3, currently v0.0.6 (2015-12-18).