在macOS中使用tar压缩的文件,上传到服务器中解压会出现报错。

tar: Ignoring unknown extended header keyword `LIBARCHIVE.xattr.com.apple.quarantine'

产生这个报错的原因是,macOS使用的是BSD tar,它会产生一些GNU tar无法识别的额外的信息,常见的Linux发行版用的是GNU tar。

使用BSD tar

解决方法可以在压缩的时候加入-no-xattrs参数,不生成额外的信息。

tar czvf target.tar.gz --no-attrs /path/to/source

此外,macOS生成的压缩文件会出现很多._开头的隐藏文件,也可以一并移除。

tar czvf target.tar.gz --no-attrs --no-mac-metadata /path/to/source
# OR
COPYFILE_DISABLE=1 tar czvf target.tar.gz --no-attrs /path/to/source

使用GNU tar

还有一个方式使用安装GNU tar使用,默认别名gtar。

brew install gnu-tar
gtar czvf target.tar.gz /path/to/source
对于生成的压缩文件中存在.DS_Store文件,需要提前删除,参考:删除macOS系统生成的.DS_Store、_MACOSX、._开头的同名文件等
最后修改:2024 年 10 月 19 日
如果觉得我的文章对你有用,请随意赞赏