DEV Community

Cover image for Useful commands to check directories and files size
Paul Isaris
Paul Isaris

Posted on • Edited on

Useful commands to check directories and files size

Often times, there is a need to check the size of directories or files in a project, or to evaluate the space a directory occupies in a live/development server, or just at our local machine.

Here is a list of useful commands that you can leverage to make sure the available disk space of your machine is normal and that the huge node_modules directory size of your project hasn't gone crazy :D

We will use the du command, which is explained below:

du (disc usage) command estimates file_path space usage

The options -sh are (from man du):

  -s, --summarize
         display only a total for each argument

  -h, --human-readable
         print sizes in human readable format (e.g., 1K 234M 2G)

To check more than one directory and see the total, use du -sch:

  -c, --total
         produce a grand total

So, let's see the basic commands:

Shows you the size of the directory in readable format:

$ du -sh directory/

Shows you a list with all the directories along with their sizes, ordered by size:

$ du -sh * | sort -h

Example in my example flutter project:

paul@paul-Inspiron-N5110:~/projects/flutter_test$ du -sh * | sort -h
4,0K    android.iml
4,0K    flutter_test_android.iml
4,0K    flutter_test.iml
4,0K    pubspec.yaml
4,0K    README.md
8,0K    test
12K lib
200K    android
212K    ios

Also, if you want to include hidden files and directories, you can run:

$ du -sch .[^.]* * |sort -h

Bonus:

Outputs the total and available size of your system's paritions

$ df -h

Outputs the inodes usage in your system:

$ df -i

If you have more useful commands to share, leave them in the comments below!

Top comments (9)

Collapse
 
vinayhegde1990 profile image
Vinay Hegde • Edited

While du is the good old-school way to learn, I prefer ncdu which from my experience is faster to calculate disk utilization and saves you the hassle of remembering or grepping the shell history to input multiple pipe-separated commands.

A lucidly explained guide on how to obtain & use it can be read here

Collapse
 
pavlosisaris profile image
Paul Isaris • Edited

Thanks, haven't heard of that until now! I will definitely use it.

Collapse
 
phlash profile image
Phil Ashby

If you're missing out on the fun in a Windows environment but have Powershell handy a colleague & I hacked together this equivalent a while back: gist.github.com/PhlashGBG/0a10d2c9...

Collapse
 
pavlosisaris profile image
Paul Isaris

Nice tool, thanks!

Collapse
 
bambam82 profile image
Bart Dorlandt

Do you have a trick to do this for hidden subdirectories as well? Without including the upstream directory?

Collapse
 
pavlosisaris profile image
Paul Isaris

Hmm, I think you could use something like
du -sch .[!.]* * |sort -h

Collapse
 
bambam82 profile image
Bart Dorlandt

Thanks Paul. It didn't work exactly (or at least not with zsh), but it got me going.

My result:

du -sch .[^.]* * |sort -h
Collapse
 
joshcheek profile image
Josh Cheek

Great tips!

Collapse
 
pavlosisaris profile image
Paul Isaris

Didn't know, that, thanks! :)