--- Begin Message ---
Subject: |
du failing at "du -sh . *" |
Date: |
Fri, 19 Nov 2010 02:08:11 +0100 |
Hey there,
I don't know for sure if this is a bug in 'du' or not - but I've
requested several people to test it and we all get the same results:
$ mkdir du_test
$ cd du_test/
$ touch a b c d
$ echo "11111111" >e
$ du -sh . *
8,0K .
$ du -sh * .
0 a
0 b
0 c
0 d
4,0K e
4,0K .
$
So not only the output of "du -sh . *" is wrong (not showing du for *),
but also the output of "du -sh * ." is incorrect (showing only 4K
instead of 8K for ".").
I use bash as my shell, but this also happens with sh, zsh, and several
other shells i've tried so far.
the version of coreutils I run is:
$ du --version
du (GNU coreutils) 8.7
Copyright © 2010 Free Software Foundation, Inc.
We've found out that the behaviour of du from coreutils 8.6 and below is
as expected:
$ mkdir du_test
$ cd du_test/
$ touch a b c d
$ echo "11111111" >e
$ du -sh . *
8,0K .
0 a
0 b
0 c
0 d
4,0K e
$ du -sh * .
0 a
0 b
0 c
0 d
4,0K e
8,0K .
$
I'm using ArchLinux with kernel 2.6.35-ARCH #1 SMP (x86_64). Filesystem
is ext4. The bug also is present on ext3, btrfs and ext2 filesystems (I
don't know if this might be of any relevance).
Please feel free to respond if you should have any further questions.
Cheers
Mathias Linnemann-Emden
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#7439: du failing at "du -sh . *" |
Date: |
Fri, 19 Nov 2010 08:52:39 -0800 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Thunderbird/3.1.6 |
On 11/18/2010 05:08 PM, Mathias Linnemann-Emden wrote:
> So not only the output of "du -sh . *" is wrong (not showing du for *),
> but also the output of "du -sh * ." is incorrect (showing only 4K
> instead of 8K for ".").
NEWS lists this as a bug fix in release 8.6:
du no longer multiply counts a file that is a directory or whose
link count is 1, even if the file is reached multiple times by
following symlinks or via multiple arguments.
The idea is that a single invocation of du never counts the same
file twice. This was always true for files with multiple hard
links (you probably didn't notice that), and now it's consistent
for all files.
To get something like the old behavior, you can use "du -l",
or invoke "du" separately for each file (depending on how you
want hard links treated).
--- End Message ---