Bug 1303964 - RFE: df output is non intuitive when reporting on multiple files residing in current directory (docs only)
RFE: df output is non intuitive when reporting on multiple files residing in ...
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: coreutils (Show other bugs)
All Linux
unspecified Severity low
: rc
: ---
Assigned To: Kamil Dudka
: FutureFeature
Depends On:
  Show dependency treegraph
Reported: 2016-02-02 09:42 EST by Noel McLoughlin
Modified: 2016-06-24 09:33 EDT (History)
8 users (show)

See Also:
Fixed In Version:
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: 1303795
Last Closed: 2016-06-24 09:33:33 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

External Trackers
Tracker ID Priority Status Summary Last Updated
CentOS 0010296 None None None 2016-02-02 09:42 EST

  None (edit)
Description Noel McLoughlin 2016-02-02 09:42:33 EST
+++ This bug was initially created as a clone of Bug #1303795 +++

+++ Cloned to RHEL7 on recommendation of Centos developer: #10296 +++

Description of problem:

sort(1) in coreutils 8.24 has an OPTION to check for strict ordering.

       -u, --unique
               with -c, check for strict ordering; without -c, output only the first of an equal run

However, df(1) in coreutils 8.24 has no OPTION to check for strict ordering.

This is inconsistent considering both df and sort reside in same coreutils package, and generated df output can contain duplicates.

Feature Request: The df utility should support strict ordering OPTION (-u).

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:

1. # cd /

2. Execute these commands to see duplicates in output:
# df *
# df /*
# df bin lib lib64 sbin

3. Execute these commands for some nonsensical totals:

# cd /
# df --totals *
# df --totals /l*
# df --totals bin lib lib64 sbin

Expected results:


Additional info:

--- Additional comment from Noel McLoughlin on 2016-02-02 04:24:55 EST ---

Example of non intuitive output for directory containing 7 files.

7423bfmp:~/workspace/ISO\ ]$ df * --total
Filesystem              1K-blocks      Used Available Use% Mounted on
/dev/mapper/my_vg-root  163012068 138180884  16527568  90% /
/dev/mapper/my_vg-root  163012068 138180884  16527568  90% /
/dev/mapper/my_vg-root  163012068 138180884  16527568  90% /
/dev/mapper/my_vg-root  163012068 138180884  16527568  90% /
/dev/mapper/my_vg-root  163012068 138180884  16527568  90% /
/dev/mapper/my_vg-root  163012068 138180884  16527568  90% /
/dev/mapper/my_vg-root  163012068 138180884  16527568  90% /
total                  1141084476 967266188 115692976  90% -
Comment 2 Ondrej Vasik 2016-02-12 08:40:28 EST
Thanks Noel for bringing this to upstream mailing list.

** The only feedback from coreutils@gnu.org is from Bernhard Voelker ***

I'm not too enthusiastic for such an option.  This is the first time
I've seen someone doing "df *".  Although it doesn't seem to be explicitly
specified by POSIX, I'd assume a consistent behavior like many other tools
which do their job for each command line argument regardless whether it
may make sense (stat, du) or maybe not (df, dirname).

Furthermore, since the introduction of the output field 'file', it really
makes sense to not unify the output:

  $ df -h --out=source,target,file df du mv
  Filesystem     Mounted on      File
  /dev/sda5      /media/big_data df
  /dev/sda5      /media/big_data du
  /dev/sda5      /media/big_data mv

A --unique option would clash with this output format.

Finally, I'm not sure if everyone is aware that also regular files can
be a mount point (admittedly, the output of 'findmnt' is a little more
useful in this case):

  $ touch a b c

  $ mount --bind /proc/cpuinfo b
  $ mount --bind /sys/kernel/notes c

  $ df -h a b c
  Filesystem      Size  Used Avail Use% Mounted on
  /dev/sda2        20G   14G  5.2G  73% /
  proc               0     0     0    - /root/tmp/b
  sysfs              0     0     0    - /root/tmp/c

Still, when 2 lines are really identical (because they are on the
same file system and not mounted over), it may be valid to squeeze
the output, but I don't think this is following the principle of
least suprise: someone might be confused why some lines are missing
... or even relying on that in a script.  Anyway, one may simply
do that with "... | sort -u" if needed.

Have a nice day,

Based on this, keeping opened to possibly adjust info documentation in some of the future updates. This is not something we can implement as downstream patch.
Comment 3 Kamil Dudka 2016-06-24 09:33:33 EDT
The output of "df *" is not non-intuitive.  It is just useless in most of the cases.  You are welcome to send a proposal to the bug-coreutils mailing list.

Note You need to log in before you can comment on or make changes to this bug.