一、问题描述
使用 Mac 命令行中的 tar 命令对文件或目录打包,生成的 tar 包放到 Linux 系统上使用 tar 命令无法解压,提示错误:tar: Ignoring unknown extended header keyword LIBARCHIVE.xattr.com.apple.provenance'
二、问题缘由
Mac 上打的 tar 包无法在 Linux 上正常解压是因为在 Mac 上打的 tar 包中包含有以 ._
开头的隐藏文件
会什么在 Mac 上用 tar 命令打包会产生额外的文件,我在这个 question 中找到了答案:tar: Ignoring unknown extended header keyword `LIBARCHIVE.xattr.security.selinux’
原来是 Mac 和 Linux 使用的 tar 命令不一样
三、解决办法
找到了原因,于是我思考能不能在 Mac 上使用跟 Linux 一样的 tar 命令,即 GNU tar。通过搜寻资料,终于找到了解决方案:可以在 Mac 上直接安装 GNU tar
brew install gnu-tar
安装完成后,可以使用如下命令重新进行打包操作:
gtar xxx.tar.gz xxx
此时生成的 tar 包就是标准的 GNU tar 包,可以在 Linux 上正常解压