How to get human readable file size on Mac (/*BSD) terminal
Getting file size from OSX terminal is a pain. Actually it's a pain in all BSD variants.
We normally use ls -sh
on Linux derivatives. But this command on Mac doesn't return a human readable value.
Alternatively I was using du
tool for a long time. du -sh
/du -h
gives a nice human readable output. As a bonus point, it also measures size of directories.
But one drawback of this command is, it doesn't support tab auto completion. What I mean is after typing du -h
and pressing tab won't suggest or complete files/directories in the current directory!
I was tweaking around today, and came up with a small solution. I also shortened the command only to dh
. Only for checking files size du -h
is a veery looong command for me.
Here is the snippet I wrote in my .zshrc
file, and did the trick. It should also work on .bashrc
as well.
function dh() {du -h $1;}
function _dh() {_files $PWD -/;}
compdef _dh dh
Save it to your rc
file and reload the terminal. Hit dh
and Tab, see the magic happen.