注意:从tar版本1.27或更高版本覆盖符号链接
下面我试图说明究竟是什么问题.
dirtmp1的内容
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
mkdir dirtmp1
cd dirtmp1
mkdir symlink1 && cd symlink1 && touch iNeedThisfile.txt && cd .. && tar -cvzf symlink1.tar.gz symlink1/
解压缩文件夹(symlnk1)中的tar文件会覆盖符号链接.我想要的只是保留符号链接并复制“iNeedThisfile.txt”
运行此命令后tar -xvf symlink1.tar.gz
symlink1:
总计0
-rw-r – r– 1 root root 0 Mar 24 18:14 iNeedThisfile.txt
提取时的任何标志,在提取时保留符号链接.并将文件复制到符号链接指向的文件夹.
我为无法用更少的文字传达我的信息而道歉.
解决方法:
我有同样的问题.在我的例子中,tar 1.23具有正确的行为(保留了符号链接),而1.26具有“新”行为(删除了符号链接并创建了一个目录).
我发现在-TRTRACT的tar上添加-h标志可以完成这项工作.保留符号链接,并将文件添加到它指向的目录中.
例如,我不得不离开
tar zxf foo.tar.gz
至
tar -h -zxf foo.tar.gz