Answers:
据我所知,Zip不支持保存文件所有权/权限。您可以尝试设置umask,以便解压缩应创建具有这些权限的文件。跑
umask 644
之前unzip
。
umask
这样它将使用这些权限来创建zip。但是我认为我不能在Windows上做到这一点吗?
实际上,这里的一些答案是不正确的。ZIP文件也可以具有文件许可权。(*)您可以使用以下命令列出ZIP文件中文件的权限:
unzip -Z
也许您用来创建ZIP文件的工具没有存储权限或存储不正确。
因此,如果您自己制作了ZIP文件,请检查使用该ZIP文件制作的工具。也许有一种方法可以在压缩之前设置权限(例如使用Maven),或者保留原始权限(但这仅在支持权限的系统上有效-即在Windows上无效)。
如果您不是自己制作ZIP文件,则唯一的机会是在解压缩后设置正确的权限,例如使用
chmod -R [permissions] [directory]
(*)我们将该功能与maven程序插件结合使用,您可以在其中为进入ZIP文件的文件指定fileMode。
UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler.
在Windows / mingw上。我目前无法访问我的linux机器,但是-Z也可以。无论如何,谢谢您的提示!
--no-same-permissions
)是不保留的权限和尊重的umask同时提取。
zipinfo
/ unzip -Z
只能猜测。要查看权限是否存在,请使用zipinfo -v
/ unzip -Zv
并查找“非MSDOS外部文件属性”;如果“文件系统或源操作系统”是UNIX,则两个最高有效字节是UNIX权限(十六进制,而不是八进制!)。