[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#10915: 8.13: df -- overly long output lines are very hard to read
From: |
Pádraig Brady |
Subject: |
bug#10915: 8.13: df -- overly long output lines are very hard to read |
Date: |
Thu, 26 Jul 2012 17:11:56 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0 |
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.