用命令行的方式来执行7z压缩和解压缩

S_George 2018-10-08 08:57:53
我在研究怎样使用7z,以及7z的极限压缩(把文件压缩到最小size)。

7z官网是 http://www.7-zip.org/

转载文章自“CSDN(https://blog.csdn.net/oilcode/article/details/50063425)”

从官网下载软件安装包。安装完毕后,安装目录里面有一个 7-zip.chm 帮助文件,可以了解7z的详细的使用说明。



用命令行来执行7z的极限压缩,就是如下的命令:

C:\01_MyApp\7-Zip\7z.exe a -t7z newPack.7z "F:\14_newWork\7z\testDoc\*" -r -mx=9 -m0=LZMA2 -ms=10m -mf=on -mhc=on -mmt=on

其中,

1,C:\01_MyApp\7-Zip\7z.exe

这个是7z可执行文件的完整路径

2,a

这个表示add命令,即新建一个压缩文件,该压缩文件存放在当前目录下。还有其他的命令,例如解压缩,从压缩文件中删除一个文件,等等

3,-t7z

这个表示使用的压缩类型是7z。类似的还有 -tzip 等等。

4,newPack.7z

新建的压缩文件的名字。

5,"F:\14_newWork\7z\testDoc\*"

这个表示把该目录下的所有的文件都执行压缩操作,添加到压缩文件中。

6,-r

这个参数表示遍历所有的子目录,每个文件都执行压缩操作,添加到压缩文件中。

7,-mx=9

这个参数表示压缩等级,9级是最高等级。默认等级是5。

8,-m0=LZMA2

这个参数表示优先使用 LZMA2 算法。类似的,还可以设置第二优先 -m1=LZMA ,第三优先 -m2=BZip2 。

9,-ms=10m

这个参数表示开启固实模式,这种模式是把压缩包中的所有文件都当成一个连续数据流来看待。通常情况下,固实压缩可增加压缩比,特别是在添加大量小文件的时候。

这里除了开启固实模式,还设置了以10兆作为一个数据块。

10,-mf=on

这个参数表示开启可执行文件压缩过滤器。

11,-mhc=on

这个参数表示对压缩包的文件头也进行压缩。

12,-mmt=on

这个参数表示开启多线程,提高压缩速度。



==========================================================

解压缩的命令如下:

C:\01_MyApp\7-Zip\7z.exe x newPack.zip -oc:\Doc -aoa

其中,

1,C:\01_MyApp\7-Zip\7z.exe

这个是7z可执行文件的完整路径

2,x

这个表示解压缩,并且使得压缩包内的文件所在的目录结构保持不变。如果你希望解压缩后所有的文件都存放在同一个目录下,则使用 e 这个命令。

3,newPack.zip

这个表示压缩包的文件名。该压缩包是存放在当前目录下的。

4,-oc:\Doc

这个表示把压缩包内的文件解压缩到 c:\Doc 目录下。-o 这个参数用于指定输出目录。

5,-aoa

这个表示直接覆盖现有文件,而没有任何提示。类似的参数还有:

-aos 跳过现有文件,其不会被覆盖。

-aou 如果相同文件名的文件以存在,将自动重命名被释放的文件。举个例子,文件 file.txt 将被自动重命名为 file_1.txt。
-aot 如果相同文件名的文件以存在,将自动重命名现有的文件。举个例子,文件 file.txt 将被自动重命名为 file_1.txt。
...全文
1797 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cocoabird 2018-10-11
  • 打赏
  • 举报
回复
7z压缩算法是开源的,压缩等级(或者说压缩率)和压缩速度在一定程度上是成反比的,文件越大越明显,在大文件压缩时采用个折中的值比较好
hongwenjun 2018-10-09
  • 打赏
  • 举报
回复

// 调用7z命令行打包文件,
7z.exe a -scsWIN  Packfile.7z  @listfile_txt

// 打包成tar ,速度快,不压缩
7z.exe a -scsWIN   pk.tar    @listfile_txt

3,286

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 实用资料发布区
社区管理员
  • 实用资料发布区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧