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)
While
du
is the good old-school way to learn, I preferncdu
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:
Great tips!
Didn't know, that, thanks! :)