我想为 Linux 打包我的应用程序,我使用 zip/tar.gz/7z/rar 在 Windows 中进行压缩。
因为我在Windows中进行压缩,所以当我在Linux中解压包时,文件权限被重置。
问题是只有 tar.gz 可以让我提取可运行的文件,其他格式(zip/7z/rar)则不行(文件权限重置为 644)。
所以我的问题是如何使用 zip/7z/rar 压缩我的文件,同时将权限重置为 755。
答案1
据我所知,zip 和 rar 不存储权限,我猜 7z 在 Windows 上也不会这样做。
因此,在压缩这些格式时,您实际上无法“设置”权限。我建议对 Linux 目标使用基于存档。如果您确实需要 zip 或 rar,请考虑使用解压后tar
调用的脚本。chmod
答案2
Zip 支持 *nix 权限,但 Windows 下没有工具可以让你随意设置权限。编写 Python 脚本可以设置它们。
答案3
您可以使用docker来压缩文件,包括windows上的权限
docker run -it --rm -v c:/Users/john/some/where:/data alpine
# within container do
apk add zip && cd /data && zip -r archive.zip dir-to-be-zipped