Thanks for the bug report. I can't reproduce the problem on my Fedora 14 x86-64 host (see below), so I expect it has something to do with how tar interacts with your platform. Can you please send the output of the shell command:
LC_ALL=C strace -o tr tar -xf directory.tar (or equivalent, using "truss" or "ktrace" or whatever) on your host? For convenience I am attaching the gzipped 'tr' file that I got on my Fedora host, which you can compare to yours. Here's what happened when I tried to reproduce the bug, and everything looks like it worked OK: $ mkdir directory $ for i in a b c d ; do touch directory/$i ; done $ ln -s a directory/1 $ ln -s b directory/2 $ ln -s c directory/3 $ tar -c directory > directory.tar $ mv directory directory.old $ tar -xf directory.tar $ find directory.old directory -ls 3410889 4 drwxr-xr-x 2 eggert eggert 4096 Aug 17 19:21 directory.old 3412838 0 lrwxrwxrwx 1 eggert eggert 1 Aug 17 19:21 directory.old/2 -> b 3411979 0 -rw-r--r-- 1 eggert eggert 0 Aug 17 19:21 directory.old/d 3411972 0 -rw-r--r-- 1 eggert eggert 0 Aug 17 19:21 directory.old/a 3412839 0 lrwxrwxrwx 1 eggert eggert 1 Aug 17 19:21 directory.old/3 -> c 3411978 0 -rw-r--r-- 1 eggert eggert 0 Aug 17 19:21 directory.old/c 3411980 0 lrwxrwxrwx 1 eggert eggert 1 Aug 17 19:21 directory.old/1 -> a 3411977 0 -rw-r--r-- 1 eggert eggert 0 Aug 17 19:21 directory.old/b 3412841 4 drwxr-xr-x 2 eggert eggert 4096 Aug 17 19:21 directory 3412842 0 lrwxrwxrwx 1 eggert eggert 1 Aug 17 19:21 directory/2 -> b 3412843 0 -rw-r--r-- 1 eggert eggert 0 Aug 17 19:21 directory/d 3412844 0 -rw-r--r-- 1 eggert eggert 0 Aug 17 19:21 directory/a 3412845 0 lrwxrwxrwx 1 eggert eggert 1 Aug 17 19:21 directory/3 -> c 3412846 0 -rw-r--r-- 1 eggert eggert 0 Aug 17 19:21 directory/c 3412847 0 lrwxrwxrwx 1 eggert eggert 1 Aug 17 19:21 directory/1 -> a 3412848 0 -rw-r--r-- 1 eggert eggert 0 Aug 17 19:21 directory/b
tr.gz
Description: GNU Zip compressed data
