how does "du" deal with hard links?

Simon Andrews simon.andrews at bbsrc.ac.uk
Thu Nov 1 16:28:41 UTC 2007


Robert P. J. Day wrote:
>   i'm wondering if i should be surprised about something i just
> noticed WRT how "du" tries to avoid [re]counting files that it's
> already seen via hard links.
> 

>   if i check their disk usage individually, i get:
> 
> $ for r in git* ; do
>> du -s $r
>> done
> 26340   git
> 26292   git.local
> 26292   git.nolinks
> $
> 
>   but if i use wildcards, notice the difference:
> 
> $ du -s git*
> 26340   git
> 9672    git.local
> 26292   git.nolinks
> $
> 

>   i can see what's happening, i just didn't realize that that's how
> "du" operated.  is that deliberate?

I guess so, since du provides the -l option which will count a file's 
size multiple times if it's hardlinked rather then just counting it the 
first time it's seen.

As you said it makes sense not to count hardlinked files more than once 
if you're trying to get a real estimate of disk usage.  We'd get very 
whacky answers on some of our servers based on the number of hardlinks 
we sometimes use.

Simon.




More information about the fedora-list mailing list