微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 如何防止从tar文件提取命令覆盖的符号链接

注意:从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

现在创建包含名称为symlink1的tar文件

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐