GNU bug report logs - #10915
8.13: df -- overly long output lines are very hard to read

Previous Next

Package: coreutils;

Reported by: Jari Aalto <jari.aalto <at> cante.net>

Date: Thu, 1 Mar 2012 06:43:02 UTC

Severity: normal

Found in version 8.13

Done: Pádraig Brady <P <at> draigBrady.com>

Bug is archived. No further changes may be made.

Full log


Message #44 received at 10915 <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: Bernhard Voelker <mail <at> bernhard-voelker.de>
Cc: "10915 <at> debbugs.gnu.org" <10915 <at> debbugs.gnu.org>,
	Jim Meyering <jim <at> meyering.net>, "Voelker,
	Bernhard" <bernhard.voelker <at> siemens-enterprise.com>,
	jaalto <jari.aalto <at> cante.net>
Subject: Re: bug#10915: 8.13: df -- overly long output lines are very hard
	to read
Date: Thu, 26 Jul 2012 17:11:56 +0100
On 07/26/2012 04:43 PM, Bernhard Voelker wrote:
> On 07/26/2012 04:23 PM, Pádraig Brady wrote:
>> On 03/01/2012 10:56 AM, Voelker, Bernhard wrote:
>>>
>>> What about a more general --fmt (or --format) option to
>>> just get the columns you want in the order you want?
>>> E.g.
>>>
>>>   df --format=size,free%,mnt,fs
>>> or
>>>   df --format=size-h,mnt  # <column name>-h or 
>>>   df --format=Size,mnt    # uppercase Size meaning -h
>>
>> This is a border line feature, but I'm 60:40 for implementing it.
>>
>> Note something similar I noticed is:
>>
>>   findmnt -l -o FSTYPE,SOURCE,TARGET
>>
>> It would make sense to align as closely to that as possible.
>> So a full --output list supported by df could be
>> FSTYPE,SOURCE,TARGET,SIZE,USED,AVAIL,FREEPCT

Oh right the last 4 items above should also have I... variants
to cater for inodes.

>> It's probably sufficient to use this to just order fields,
>> and leave other formatting to existing modifiers.
> 
> Implementing --output=<field-list> is of course much simpler
> than what Jim proposed [1]:
> he suggested a stat-like --format option which takes %-directives.
> 
> That would be much more flexible for the user, and the existing
> output formats would just be a pre-defined format strings.

> We could for the first time have blocks and inodes statistics
> in one command:

Good point, but that could be allowed too with --output

> 
>   %i  inodes
>   %I  inodes in percent
>   %a  AVAIL
>   %A  AVAIL in percent
>   %u  unused
>   %U  unused percentage
>   %t  total size
>   %T  FSTYPE
>   %s  SOURCE
>   %m  TARGET (mount point)
>   ...
> 
>   df --format="%u:%i:%T:%m"
> 
> And some directives could have mixed SIZE modifiers, e.g.
> 
>   %{SIZE}u	used blocks with SIZE like KMGTPEZY.
>   %{SIZE}i      inode number
> 
>   df --format="%Tt %Gu %Ki %m"

T overlaps, but I see what you mean.

> Scripts could parse the output of --format (or --printf) much
> safer (SOURCE and TARGET can include almost any characters like
> '\n', '\t', etc. but never e.g. NULL)

They can't actually. mbsalign replaced non printable chars
in all but the last field, and there was a patch last week
to replace control chars in the last field with '?'

Would you still want to apply mbsalign to all fields
but the last when using a specific format like this?

>   df --printf="%U\0%s\0%m\0\n"
> 
> As already said, this would be a greater change in df.c,
> but some code could surely be shared with stat.c and maybe
> in future with "ls --format=..." ;-)
> 
> I'm not against --output, but the advantage of a more
> flexible --printf is unbeatable IMO.

60:40 for --output as ordering/selection is needed by some
40:60 against --printf as detailed formatting is neede by few

cheers,
Pádraig.




This bug report was last modified 12 years and 199 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.