du does not account space allocated by long softlinks

Ville Herva <[email protected]>
Newsgroups gmane.comp.gnu.fileutils.bugs
Message-ID <[email protected]>
Long (non-embedded) softlinks allocate disk blocks to hold the referred path
on linux/ext[23] (possibly on other fs's as well). This space is not
reported by du(1) at all:

mkdir empty; cd empty
ln -fs $(perl -e "print ('a' x 100)") a
du -k a
0       a
perl -e '($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks)=lstat "a"; print $blocks*512,"\n"'
4096

(4096 is the size of one disk block on this fs.)

With shorter soft links (the limit is 60 chars on my case), no disk block is
allocated because the referred path is embedded in the softlink:

ln -fs $(perl -e "print ('a' x 10)") a
du -k a
0       a
perl -e '($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks)=lstat "a"; print $blocks*512,"\n"'
0

du --version
du (fileutils) 4.1
Written by Torbjorn Granlund, David MacKenzie, Larry McVoy, and Paul Eggert.

Copyright (C) 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


 
-- v --

[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.