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

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...