Примечание. Перезапись символических ссылок происходит, начиная с версии tar 1.27 или выше.
Ниже я пытаюсь показать, в чем именно заключается проблема.
содержимое dirtymp1
file1.txt
file2.txt
код для создания вышеуказанного каталога
rm -f -r dirtmp1 && mkdir dirtmp1 && cd dirtmp1 && touch file1.txt && touch file2.txt && ls -al
создание символической ссылки
cd ..
ln -s dirtmp1/ symlink1
теперь создайте файл tar, который содержит имя как symlink1
mkdir dirtmp1
cd dirtmp1
mkdir symlink1 && cd symlink1 && touch iNeedThisfile.txt && cd .. && tar -cvzf symlink1.tar.gz symlink1/
Извлеките файл tar в папку (symlnk1), перезаписав символическую ссылку. Все, что я хочу, это сохранить символическую ссылку и скопировать «iNeedThisfile.txt».
После запуска этой команды tar -xvf symlink1.tar.gz
symlink1:
total 0
-rw-r--r-- 1 root root 0 Mar 24 18:14 iNeedThisfile.txt
Любые флаги при извлечении, которые сохраняют символические ссылки при извлечении. и копирует файлы в папку, на которую указывает символическая ссылка.
Прошу прощения за то, что не смог передать свое сообщение меньшим количеством строк текста.
tar -xvf {symlink1.tar.gz} {path/to/file}
- person Soheil Hashemi   schedule 24.03.2015-k
для tar? (Я могу попробовать это на машине с CentOS 7 позже.) - person Etan Reisner   schedule 25.03.2015