I want a list of the folders from the current directory or one that I specify with their size.

I have tried with du but I only get the size of the directories I specify (du . ./f1), and ls doesn't show the size of the folders.

How do I do this without any scripting ?

  • 12
    Thanks ;-) but I've already tried and couldn't find anything. And try Googling du!
    – kevin
    Commented Aug 5, 2010 at 6:39
  • 1
    Time changes everything I guess. Now googling du gives stackoverflow answers :D Commented Jul 27, 2021 at 6:33

10 Answers 10


If you want to show all the directories in the current directory:

$ du -sh */
788K    foo/
500K    bar/
931K    baz/

To show them starting from another directory:

$ du -sh /path/to/dir/*/
48K     /path/to/dir/dir1/
4.0K    /path/to/dir/dir2/
6.7M    /path/to/dir/dir3/
20K     /path/to/dir/dir4/
8.0K    /path/to/dir/dir5/
44K     /path/to/dir/dir6/

If you want to make sure directories with names starting with a dot are included do shopt -s dotglob first.

  • 3
    Where -s means summarise, display the total and -h means human readable
    – wranvaud
    Commented Oct 30, 2017 at 12:53
  • 10
    Sort folders by size: du -s */ | sort -n. Commented Nov 1, 2018 at 16:28
  • 4
    @AntonTarasenko: Sort human readable sizes Commented Nov 1, 2018 at 20:58
  • 2
    @AntonTarasenko: shopt -s dotglob doc Commented Nov 4, 2018 at 15:25
  • 5
    -n does not sorts properly use du -sh */ | sort -hr instead Commented Feb 14, 2020 at 14:19

On a Mac, the --max-depth option is supplanted by -d [depth]. So, to see a human readable listing of your root drive plus 2 levels deep use the following:

du -hd 2 /* 

Note: this command will expose the top two directory levels off your root. This includes traversing one level into your Volumes, and will list the summary sizes of each top-level directory in each of your attached volumes. Depending on what you have attached, this command could take some time to complete.


Another aproach is the --max-depth option.

du -h --max-depth=1 .

Will list all directories and files under the current folder with size.

Depth 2 would list one more level of folders.

  • 5
    On Mac, it's du -hd 2 . for 2 levels of depth.
    – Ryan
    Commented Aug 2, 2014 at 2:12
  • 1
    Ah yes. And probably on FreeBSD as well. Thanks for the info. Commented Aug 7, 2014 at 11:25


$ du -s ./f1


$ du -sh ./f1

for more friendly readable sizes.


Building on the accepted answer, this command will show you the sizes of the folders in the directory, and will also list them by size for you to interpret easier:

$ du -sh */ | sort -rn

On Mac, you can install the GNU (Linux) implementation of du with Homebrew (brew install coreutils). Then for example:

gdu folder -shL --exclude=.git


  • gdu is the name given to the GNU implementation of du (by default Homebrew does not hide /usr/bin/du);
  • s produces a grand total for the folder specified (omit if you want to see the breakdown);
  • h outputs human-readable sizes;
  • L follows symlinks;
  • --exclude=.git excludes the git directory within the specified folder (this is just an example).

You can ignore more folders by adding --exclude=blah. You can also specify several folders at once (ie gdu folder1 folder2 ...), and in that case, you can combine all the subtotals into a single size using option c.


I like the following approach:

du -schx .[!.]* * | sort -h


  • s: display only a total for each argument
  • c: produce a grand total
  • h: print sizes in a human-readable format
  • x: skip directories on different file systems
  • .[!.]* *: Summarize disk usage of each file, recursively for directories (including "hidden" ones)
  • | sort -h: Sort based on human-readable numbers (e.g., 2K 1G)
  • I just needed to add the -r to the sort to have it give me it in descending order.
    – ScottS
    Commented Jul 17, 2023 at 20:34
  • this is the best answer as it takes into account also files in the current folder and not only subfolders.
    – Sysanin
    Commented Jul 21, 2023 at 8:39

$ du --max-depth=1 /var/www/ | sort -n -r

  • 4
    When adding an answer to an older question with existing answers it is good practice to explain how your answer is different and include some explanation so that it isn't a command only answer. Commented Jun 30, 2015 at 16:41
  • 4
    Can you expand yourt answer to explain what the parameters do?
    – fixer1234
    Commented Jun 30, 2015 at 18:59

Worth to mention the NCurses Disk Usage shell command.

Ncdu is a disk usage analyzer with an ncurses interface. It is designed to find space hogs on a remote server where you don't have an entire graphical setup available, but it is a useful tool even on regular desktop systems. Ncdu aims to be fast, simple and easy to use, and should be able to run in any minimal POSIX-like environment with ncurses installed.


Here is a POSIX script that will work with:

  • A file
  • Files
  • A directory
  • Directories
ls -ARgo "$@" | awk '{q += $3} END {print q}'


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .