我正在寻找一个shell命令(最好是一个一行),它将创建一个压缩和存储内容的zip文件(所谓存储,我指的是官方文档链接1中所述的未压缩文件)。
.ZIP文件格式规范允许混合不同的压缩类型,包括只存储文件:
4.1.8放置在ZIP文件中的每个数据文件都可以进行压缩、存储、加密或数字签名,这与在同一ZIP文件中的其他数据文件如何存档无关。
如果这是必要的话,这种技术上的可能性得到了在应用/压缩下在IANA登记册上注册的媒体类型的确认:
A.当地档案标题: 本地文件头签名4字节(0x04034b50)压缩方法2字节
到目前为止,我已经尝试了几个无效的压缩参数(-f -u -U,..)
理想情况下,命令将压缩文本文件,并存储二进制内容,并根据其文件扩展名进行区分(例如: html、css、js将被视为文本,jpg、ico、jar将被视为二进制)。
发布于 2019-01-20 17:27:32
添加到@cody的答案中,您还可以使用-g和-0在每个文件(组)的基础上进行此操作。类似于:
zip archive.zip compressme.txt
zip -g archive.zip -0 dontcompressme.jpg-# ( -0,-1,-2,-3,-4,-5,-6,-7,-8,-9)使用指定的数字#调节压缩速度,其中-0表示没有压缩(存储所有文件),-1表示最快的压缩速度(压缩较少),-9表示最慢的压缩速度(最佳压缩,忽略后缀列表)。默认的压缩级别是-6。-g --grow (附加到)指定的zip归档,而不是创建一个新的压缩归档。如果此操作失败,zip将尝试将存档还原到其原始状态。如果还原失败,存档可能会损坏。如果没有现有存档,或者必须更新或删除至少一个归档成员,则忽略此选项。
https://stackoverflow.com/questions/54278904
复制相似问题