Loading

MacOS文件打包遇到的一些问题

使用tar命令打包后,跨平台解压后文件内会出现每个文件的副本文件._*

1. 产生原因

https://superuser.com/questions/61185/why-do-i-get-files-like-foo-in-my-tarball-on-os-x/61188#61188

2. 解决方式:

需要添加COPYFILE_DISABLE=1避免生成._*文件
如:COPYFILE_DISABLE=1 tar -zcvf repository.tar.gz repository

同样会出现一个额外的文件夹PaxHeader

1. 产生原因

在macOS系统上使用tar进行打包时,默认会在归档文件中包含paxheader文件夹,这是因为pax是一种用于存储文件元数据(如文件名、权限等)的标准格式。这种格式通常用于确保在不同系统间进行归档和解压时能够正确地保留文件的元数据信息。

2. 解决方式

需要添加--format=ustar参数,该参数在tar命令中用来指定归档文件的格式为ustar。
tar --format=ustar -zcvf repository.tar.gz repository

同样会出现额外的文件.DS_Store

1. 产生原因

.DS_Store是macOS系统用来存储文件夹的自定义属性和布局信息的隐藏文件。

2. 解决方式

通过添加--exclude='.DS_Store'参数,来排除不打包名称为.DS_Store的文件
tar --exclude='.DS_Store' -zcvf repository.tar.gz repository

如果你想要在MacOS系统中打一个干净的tar包或tar.gz包,可以将这三种结合使用。
COPYFILE_DISABLE=1 tar --format=ustar --exclude='.DS_Store' -zcvf repository.tar.gz repository

posted @ 2024-03-22 10:40  自己の橘子  阅读(476)  评论(0)    收藏  举报