tree, get me directory size!
Getting an understanding of how your drive is filled up is very important; especially on systems with no GUI. Let's see how the tree is helpful.
I was working with the Droplets and Volumes on DigitalOcean and down the line, I had a question: How much space my Volume is using?
And based on the above question, I would choose to expand or reduce the size of the Volume.
The same can go for Storage on other providers or local machines.
You NEED to know the usage and plan accordingly.
It would be fast and easy to do so in GUI of OS but if you are connected via terminal or GUI is not enabled, it becomes a constant need to be mentally aware of the size.
I came across a few options, like: diskusage
(or du
on the command line)
Let's see how du
works. Assuming that I am in my code directory and wanna analyze assets
inside casper
(the ghost theme)
du casper/assets
But that's not very readable; fortunately -h
is here to show the size in human-readable format:
du -h casper/assets
But above outputs are still not that human-readable.
- All the paths matching the said pattern will be shown
- Files are missing
Solution? tree
tree
utility
The tree
utility is a good alternative to obtaining the size of the directories.
But tree
won't give the size results to you right away; you would have to ask for it.
Let's try to run it on the above example; assets
in casper
To get the size, we will need to add the -s
flag; let's see what it shows:
Still not good, we can't make sense of the size displayed; it is in bytes
We can use the same flag -h
as of du
to get the size human-readable:
If you want just the directories and no files in the output; we can add -d
flag which will show the following output on our assets
directory example:
Installation
Now it might be possible that you don't have it installed on your computer.
To install it, you can run the following commands depending on the OS:
macOS
brew install tree
Linux (apt)
sudo apt install tree
Linux (yum)
sudo yum install tree
WSL (Windows Subsystem for Linux)
Depending on what Linux subsystem you install, you can use one of the above Linux commands
What's next?
More things tree
can offer
The tree command is capable of more things such as
- coloured output
- permissions in the tree output
- inode
- filtering
- etc.
Check out the man page for tree
here: https://linux.die.net/man/1/tree or on Command Line:
man tree
Use with other utilities
As it is a completely synchronous utility, you can pipe its output to any other CLI utility or tool.
For example, Â you can export a beautiful snapshot of tree
output with carbon
. As there is a CLI utility of carbon named carbon-now-cli
with preset
tree -h assets | carbon-now -p presentation
Conclusion
Have you used the tree
command recently?
What other cool flags you have used it with?
Let me know through comments ? or on Twitter at @heypankaj_ and/or @time2hack
If you find this article helpful, please share it with others ?
Subscribe to the blog to receive new posts right to your inbox.