是否有一个存档工具(在 Windows 上运行),我可以在存档文件或 zip 文件中设置“执行属性”?

是否有一个存档工具(在 Windows 上运行),我可以在存档文件或 zip 文件中设置“执行属性”?

我有一小组在 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来源也可用。

相关内容