我有一小组在 Windows 上开发的文件,但需要在 Linux 上提取并运行。其中一个文件是脚本 StartApp.sh。我将文件打包为 zip 存档,将其传递给我的管理员,并要求他在运行 StartApp.sh 之前手动设置其执行属性。
是否有一个存档工具(在 Windows 上运行),我可以在存档或 zip 文件本身中设置“执行属性”?(因此,当在 Linux 上提取时,脚本将无需手动步骤即可执行。)
答案1
据我所知,没有这样的工具,除非你使用赛格威在 Windows 上,为 Windows 提供类似 Linux 的环境。
您的其他选择是:
- 为你的 zip 文件创建一个解压脚本,用于设置执行权限
- 使用版本管理系统传输文件,而不是 zip
答案2
如果你愿意做一点工作,可以编写一个 Python 脚本来执行此操作,使用zipfile
。诀窍是在将文件添加到存档ZipInfo.external_attr
之前先从成员中获取该文件。请参阅源代码以了解您需要执行的确切操作。ZipFile.writestr()
ZipFile.write()
zinfo.external_attr = (st[0] & 0xFFFF) << 16L # Unix attributes
答案3
我不会指望找到一个可以让你原生执行此操作的存档实用程序(如果本机文件系统不执行此操作,则不太可能找到应用程序来执行此操作)...对于大多数 windows/linux 交叉事物,我的后备答案是 cygwin
答案4
使用我的 Windows 命令行实用程序zip_exec.zip设置 unix 和 mac 的可执行标志(在使用 Windows 资源管理器和 7zip 创建的文件上测试)。cpp来源也可用。