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 > > 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: %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" 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) 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. Have a nice day, Berny [1] http://lists.gnu.org/archive/html/bug-coreutils/2012-03/msg00007.html