LINUX.ORG.RU
 
Cosmicman

tar не восстанавливает симлинки


0

0

Дистрибутив gentoo, tar (GNU tar) 1.20
Cтолкнулся с проблемой:
создаю архив (tar -cvzf /someplace/home.tar /home), распаковываю его (tar -xvzf home.tar -C /someplace), после чего вижу, что многие симлинки не восстанавливаются - вместо них лежат обычные файлы размером 0 байт. Попробовал тоже самое проделывать в archlinux-e (tar (GNU tar) 1.21) и никаких проблем - там все симлинки восстанавливаются.
Я хз как это обьяснить :)


[#]  
Cosmicman

узнал что не восстанавливаются только симлинки с относительными путями, типа "music -> ../incoming/exchange/music".
если сделать "music -> /home/incoming/exchange/music" , то все ок.
имхо, явно похоже на баг.

** ()
[#]  
xorik

УМВР app-arch/tar Available versions: 1.20 ~1.21-r1 ~1.22 {nls static userland_GNU} Installed versions: 1.20(23:30:23 15.02.2010)(nls userland_GNU -static)

**** ()
[#] Ответ на: комментарий от Cosmicman 02.03.2010 21:24:48  
xorik
xor@notebook 2 $ tar -xvzf /tmp/1.tar 
./
./2
./1
xor@notebook 2 $ ls -la
итого 12
drwxr-xr-x  2 xor  xor  4096 Мар  2 21:23 .
drwxrwxrwt 13 root root 4096 Мар  2 21:23 ..
-rw-r--r--  1 xor  xor    16 Мар  2 21:22 1
lrwxrwxrwx  1 xor  xor     1 Мар  2 21:24 2 -> 1

Вполне себе относительная

**** ()
[#]  
ip1981

Да, поэтому в Слаке две версии тара: новая и 1.13.

## ()
[#]  
xorik

Ты с флагами компилятора не играл? Говорят это на тар иногда плохо влияет

**** ()
[#] Ответ на: комментарий от xorik 02.03.2010 21:26:10  
Cosmicman

значит только если в симлинке есть "../" :)

** ()
[#]  
xorik

И еще с флагом -z архив надо называть .tar.gz

**** ()
[#] Ответ на: комментарий от xorik 02.03.2010 21:28:08  
Cosmicman

флаги обычные "-O2 -march=i686 -fomit-frame-pointer"

** ()
[#] Ответ на: комментарий от Cosmicman 02.03.2010 21:29:16  
xorik

Re: tar не восстанавливает симлинки

Опять УМВР

xor@notebook 2 $ tar -xvzf /tmp/1.tar
./
./2/
./2/test
./test
xor@notebook 2 $ ls -la 2/
итого 8
drwxr-xr-x 2 xor xor 4096 Мар  2 21:32 .
drwxr-xr-x 3 xor xor 4096 Мар  2 21:31 ..
lrwxrwxrwx 1 xor xor    7 Мар  2 21:34 test -> ../test

**** ()
[#]  
Adjkru

Может первый тар просто был прерван? оно прописывает права и создаёт симлинки только на последнем этапе.

**** ()