New option for ls(1), du(1), df(1)
Oliver Fromme
olli at lurza.secnetix.de
Fri Nov 24 09:40:23 PST 2006
Hi,
I'm not sure if posting to this list is the correct way
to proceed, but the title says "Architecture and design
discussions", and I'm having a design issue, so here it
goes ...
The tools ls(1), du(1) and df(1) all have a "-h" option
which means so-called "human-readable" output. However,
personally I think the output isn't very human-readable
either way. You often get a mixture of numbers with
various combinations of "K", "M", "G", and it's difficult
to recognize the dimensions quickly and compare them to
each other. Just an example:
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 989M 61M 849M 7% /
/dev/ad0s1d 9.7G 31M 8.9G 0% /var
/dev/ad0s1e 9.7G 1.5G 7.4G 17% /usr
/dev/ad0s1f 122G 1.3G 111G 1% /home
/dev/md0 290M 20K 267M 0% /tmp
I've hacked a new option into those tools which uses
thousands separators for displaying the numbers. With
that option, the output looks like this (in US locale):
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 1,012,974 62,418 869,520 7% /
/dev/ad0s1d 10,154,158 31,474 9,310,352 0% /var
/dev/ad0s1e 10,154,158 1,545,718 7,796,108 17% /usr
/dev/ad0s1f 128,009,212 1,358,600 116,409,876 1% /home
/dev/md0 297,326 20 273,520 0% /tmp
With a German locale (my personal default), periods are
used instead of commas.
The patches for ls(1), du(1) and df(1) are available from
this URL: http://www.secnetix.de/~olli/FreeBSD/ls-patch/
They apply cleanly to RELENG_6 and RELENG_5. Except for
df(1) they also apply to HEAD (the df(1) patch requires
a small modification because of the recent addition of the
"kflag" variable in HEAD).
Those patches are not ready yet (that's why i haven't
send-pr'ed them). They're not checked against style(9),
and the option that I used for the new feature is "-,"
which is probably against style(9), even though it is
easy to remember. For the same reason I haven't updated
the usage strings and the manpages yet (but I'll do that
when there is consensus).
I have a few questions ...
1. Which option letter should be used (if not "-,")?
Currently, the following are unused in ls(1):
-DEJKMNOQVXYejvyz
They are also unused in du(1) and df(1), so one of
those would be fine.
2. There's a bit of common code in my patches to the
three utilities. Should that code be moved to
libutil? That's also where humanize_number(3)
already lives.
It is also worth noting that probably many more tools
might benefit from that feature. "netstat -i" and
"ipfw show" come to mind immediately.
Any comments are welcome.
Best regards
Oliver
PS: I'm reading the list, so there's no need to put me
on CC when replying.
--
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
One Unix to rule them all, One Resolver to find them,
One IP to bring them all and in the zone to bind them.
More information about the freebsd-arch
mailing list