Paul Eggert wrote:
> I see that this aspect of 'du' is not documented. Here's a proposed patch
> to the documentation, which I hope improves things.
>
> +If two or more hard links point to the same file, only one of the hard
> +links is counted. The @var{file} argument order affects which links
> +are counted, and changing the argument order may change the numbers
> +that @command{du} outputs.
Hardlinks! Here is a modified test example to illustrate the behavior.
$ mkdir testdir
$ cd testdir
$ dd if=/dev/zero of=a count=19
$ dd if=/dev/zero of=b count=23
$ dd if=/dev/zero of=c count=29
$ ls -ldog .
drwxrwxr-x 2 4096 2008-02-20 16:04 ./
$ ls -ldog --block-size=1024 .
drwxrwxr-x 2 4 2008-02-20 16:04 ./
$ du -s *
12 a
12 b
16 c
$ ln a z
$ du -s * .
12 a
12 b
16 c
32 .
$ ln b y
$ du -s * .
12 a
12 b
16 c
20 .
$ ln c x
$ du -s * .
12 a
12 b
16 c
4 .
Fun how the total directory size just keeps getting smaller and
smaller. With enough hard links the directory has disappeared! I
will add this to my list of stupid filesystem tricks.
This doesn't seem a particularly satisfying result as it doesn't seem
like a reasonable outcome.
Fortunately it is a very rare case. Usually it is one (*) or the
other (.) and either of those produce reasonable results.
$ du -s .
44 .
Bob
_______________________________________________
Bug-coreutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-coreutils