loading...
Cover image for Useful commands to check directories and files size

Useful commands to check directories and files size

pavlosisaris profile image Paul Isaris Updated on ・2 min read

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!

Posted on by:

pavlosisaris profile

Paul Isaris

@pavlosisaris

Software Engineer @SciFY. Live to learn something new -and write cleaner and more sustainable code- every day. Passionate with learning and discovering new technologies, history, and psychology.

Discussion

pic
Editor guide
 

du uses kibibyte (1024 bytes), whereas a lot of graphical file managers use kilobyte in the newer definition, i.e. 1000 bytes. Something to keep in mind when the values in your terminal differ from e.g. Finder or Explorer.

 

Didn't know, that, thanks! :)

 

Just to make sure this is still true I used du and Finder on a Rails project with some installed Node modules. du -hs reports the size as 322MB, Finder as 338.7MB.

 

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

 

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

 

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...

 

Nice tool, thanks!

 

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

 

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

 

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

My result:

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