Several command line tools use the -h
or --human-readable
option to print file size in a human readable format (i.e., 36G
vs 37550836
).
- Why is this option needed and not the default?
- Aren't these tools mainly for output to humans?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communitySeveral command line tools use the -h
or --human-readable
option to print file size in a human readable format (i.e., 36G
vs 37550836
).
ls
, but parsing the output of du
or df
is relatively common. (Mind, for df
, you should use df -P
when parsing.)sort -n
because I'm less interested in quickly seeing the rough size of each directory and more in which subdirectory is taking up disproportionally too much space...
sort -h
was introduced in GNU coreutils 7.5. Lucid has 7.4, so on Ubuntu you need at least maverick.
Nov 19, 2011 at 2:30
Note that if you set BLOCKSIZE=human-readable in your environment, this will be the default, at least for the commands from GNU coreutils, i.e. if you're using bash put:
export BLOCKSIZE=human-readable
in your $HOME/.bashrc file.
Beside what Gilles said:
When these tools where invented hdd was very small, compared with today. You didn't need help to read a number like 400000.
And if you don't like it, use the alias system. In your home directory,
edit ~/.bashrc
and insert, for example:
alias df='df -h'
alias du='du -h'
Note that in contrast to many other languages, you aren't allowed to have a blank before or behind the assignment operator (equal sign).