notes
notes copied to clipboard
Tar archive won't unpack – "Path contains '..' or Tar存档无法解压缩-“路径包含'..'
原因
tar 压缩文件时,如果指定的被压缩路径非当前目录
以 gzip 格式为例:
tar -zcvf foo.tar.gz ../abc # 在其他目录下,以【相对】路径的形式对 abc 目录进行压缩
tar -zcvf foo.tar.gz /xyz/abc # 在其他目录下,以【绝对】路径的形式对 abc 目录进行压缩
以上的操作都是对非当前目录进行压缩,这样会造成压缩结果带有相同的路径关联
那么,解压缩时会出现一系列因为路径不对应而无法解压的情况
处理
tar -zcvf foo.tar.gz -C ../abc . # 注意最后的点(.)不要掉了
tar -zcvf foo.tar.gz -C /xyz/abc . # 注意最后的点(.)不要掉了
-C ../abc 是改变目录到 abc 的意思,tar 会先切换到 abc 目录。
接着再开始压缩,并将结果写入到当前目录下,这样解压缩时就不会出现路径问题了。