假设我们有如下目录结构:
我们使用以下 7z 命令行创建压缩包:
1 | cd Folder1 |
这里我们使用 Folder2\* 指定我要将 Folder2 目录里的所有内容加入到压缩包。执行完毕后,打开压缩包查看压缩内容时发现:
Folder2 目录也包含到压缩包里了,这不是我希望的。怎么才能把 Folder2 目录排除在外,只保留 Folder2 目录里面的内容呢?只要在路径前面加个 .!
1 | cd Folder1 |
再次检查生成的压缩包:
这次正是我期望的结果。
假设我们有如下目录结构:
我们使用以下 7z 命令行创建压缩包:
1 | cd Folder1 |
这里我们使用 Folder2\* 指定我要将 Folder2 目录里的所有内容加入到压缩包。执行完毕后,打开压缩包查看压缩内容时发现:
Folder2 目录也包含到压缩包里了,这不是我希望的。怎么才能把 Folder2 目录排除在外,只保留 Folder2 目录里面的内容呢?只要在路径前面加个 .!
1 | cd Folder1 |
再次检查生成的压缩包:
这次正是我期望的结果。
7zip 是个好东西,压缩率高还是免费和开源的, WinRAR 等工具也支持其解压缩,所以我就将其用于我们的 CI 流程中压缩最终的项目构建结果。不过一直一来有一个问题,就是 7zip 在压缩过程中会输出每一个被压缩的文件的路径信息,所有这些输出信息都被记录到了 CI 系统的构建日志里,结果就是导致构建日志非常非常长,因为有成千个文件要压缩。我希望可以让 7zip 只输出错误信息,这样可以极大地缩短构建日志的长度。找了半天,终于发现了答案,需要加2个参数是: -bso0 -bsp0。
另外,我还费劲力气算是找到了目前压缩率最高的参数组合(外加只输出错误信息):-bsp0 -bso0 -m0=lzma2 -t7z -mx=9 -mfb=258 -md=1024m -ms=on -mmt=on