[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-tar] Bug with files which have hardlinks
From: |
Joerg Schilling |
Subject: |
Re: [Bug-tar] Bug with files which have hardlinks |
Date: |
Sat, 09 Oct 2010 20:38:39 +0200 |
User-agent: |
nail 11.22 3/20/05 |
Bob Proulx <address@hidden> wrote:
> That does seem odd to me. Compare these two cases:
>
> $ date -R > afile
> $ ls -l afile
> -rw-rw-r-- 1 bob bob 32 2010-10-09 01:07 afile
> $ tar cvvf x.tar afile afile afile
> -rw-rw-r-- bob/bob 32 2010-10-09 01:07 afile
> -rw-rw-r-- bob/bob 32 2010-10-09 01:07 afile
> -rw-rw-r-- bob/bob 32 2010-10-09 01:07 afile
>
> All three copies of the file are in the archive. Now let's add a hard
> link to the file.
This case is not really different as SUSv2 permitted tar to include data even
for hardlinks on files.
> $ ln afile hlink
> $ ls -l afile
> -rw-rw-r-- 2 bob bob 32 2010-10-09 01:07 afile
>
> Then try the tar archive creation again.
>
> $ tar cvvf x.tar afile afile afile
> -rw-rw-r-- bob/bob 32 2010-10-09 01:07 afile
> hrw-rw-r-- bob/bob 0 2010-10-09 01:07 afile link to afile
> hrw-rw-r-- bob/bob 0 2010-10-09 01:07 afile link to afile
>
> Why did having afile hardlinked to another file change the behavior of
> tar? Why did having afile's hardlink count greater than 1 cause tar
> to think that afile was a hardlink to afile? It is reporting it as
> being a hard link to itself. That doesn't look right. Why didn't it
> just archive the file again as it did in the first case?
For many tar implementation, this changes the behavior during extract.
> Of course when untar'ing the archive the file is restored okay. So
> this seems like a completely academic question of why did tar behave
> differently and show a cosmetic difference in behavior trace output.
> As opposed to actually producing a result on disk which is incorrect.
Extracting the second archive only works correctly if the implementors of this
tar variant listened to the security warning related to hard links I put
out in summer 2003.
The other tar implementations will remove the existing plain file while
preparing to create the hardlink.
Jörg
--
EMail:address@hidden (home) Jörg Schilling D-13353 Berlin
address@hidden (uni)
address@hidden (work) Blog: http://schily.blogspot.com/
URL: http://cdrecord.berlios.de/private/ ftp://ftp.berlios.de/pub/schily