macOS命令行创建保留元数据且4GB+可通过校验的Zip方法
解决方案:macOS命令行创建兼容大文件且保留元数据的Zip包
一、系统内置工具改进方案(优先推荐)
针对你使用ditto时遇到的4GB Zip校验失败问题,只需添加--zip64参数即可解决——该参数启用Zip64格式以支持大于4GB的压缩包,同时完整保留资源分支、xattrs(存入__MACOSX子目录):
ditto -c -k --sequesterRsrc --keepParent --zip64 src_directory archive.zip
核心特性验证:
- 元数据保留:解压后自动生成
__MACOSX目录,包含所有资源分支与扩展属性 - 大文件兼容性:Zip64格式原生支持超4GB内容,使用
unzip -t archive.zip校验无错误 - 零额外依赖:依赖macOS内置
ditto工具,无需安装第三方软件
二、第三方工具方案(7-Zip)
如果内置工具存在特殊场景限制,可使用7-Zip(需通过Homebrew安装:brew install p7zip),它能完美适配macOS元数据并支持大文件:
7z a -tzip -mx=0 -mm=Deflate -mfb=258 -mpass=1 -mac -mtc=on archive.zip src_directory
参数说明:
-tzip:指定输出格式为标准Zip-mx=0:无压缩(如需压缩可改为-mx=5等级别)-mac:强制保留macOS特有的元数据(资源分支、xattrs)-mtc=on:保留文件原始时间戳- 原生Zip64支持:无需额外参数即可处理超4GB文件
三、无效方案说明
tar --format zip:macOS内置tar生成的Zip格式不支持将macOS元数据写入__MACOSX目录,即使添加--xattrs/--acls参数也无效- 原生
zip命令:无内置元数据保留机制,无法满足需求
内容的提问来源于stack exchange,提问作者Niel
相关产品推荐
相关产品推荐

