Paul Eggert wrote:
> Thomas Graf wrote:
> > touch afile
> > link afile hlink
> > gtar -cvvf x.tar afile afile afile
> > -rw-r--r-- tom/users         0 2010-10-08 01:49 afile
> > hrw-r--r-- tom/users         0 2010-10-08 01:49 afile link to afile
> > hrw-r--r-- tom/users         0 2010-10-08 01:49 afile link to afile
> 
> I don't see a bug there.  You asked "tar" to archive the same file
> three times, and it did.
> 
> Solaris 10 /bin/tar behaves the same way.

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.

  $ 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?

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.

Bob

Reply via email to