notes icon indicating copy to clipboard operation
notes copied to clipboard

Tar archive won't unpack – "Path contains '..' or Tar存档无法解压缩-“路径包含'..'

Open lanlin opened this issue 4 years ago • 0 comments

原因

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 目录。

接着再开始压缩,并将结果写入到当前目录下,这样解压缩时就不会出现路径问题了。

lanlin avatar May 27 '21 03:05 lanlin