【超详细】7z的详解和7z的控制台参数说明

  • A+
所属分类:Windows

【超详细】7z的详解和7z的控制台参数说明目录

    • 简介
    • 退出代码
    • 使用语法
    • 原版使用说明
    • 命令及实例
      • a 添加文件到压缩档案
      • b 测试 CPU 运行速度及检查内存错误
      • d 从压缩档案删除文件
      • e 从压缩档案中释放文件到当前目录中
      • l 列出压缩档案内容
      • t 测试压缩档案文件的完整性
      • u 在压缩档案文件中使用较新的文件替换掉较旧的文件
      • x 在当前目录中,使用完整路径从压缩档案中释放文件.或者到指定的输出文件夹
    • 更多的选项
      • -- 在命令行中使“--”后的选项开关“-”都失效。这样就允许在命令行中使用文件名以“-”开头的文件
      • -i指定压缩时附加文件或一类文件。此选项可附件添加多个类型
      • -x 指定某一文件或某一类文件从操作中排除。此选项可同时排除多个类型
      • -o 指定释放文件的输出文件夹。此选项只能和释放命令配合使用
      • -r 递归子目录选项
      • -t 指定压缩档案格式。指定压缩档案格式
      • -y 使 7-Zip 执行命令时的大多数提示失效
      • -v指定分卷大小
      • -p 指定密码
      • -ao 指定在释放期间如何覆盖硬盘上现有的同名文件
      • -an 不解析命令行中的 archive_name 区域
      • -ai 指定附加文件,包括压缩档案文件名及通配符.此选项可同时附加多个类型。
      • -ax 指定必须从操作中排除的压缩档案。此选项可同时排除多个类型。
    • 高级实例
      • 实例一
      • 实例二
    • 7z 各版本信息对比
    • 参考

 

简介

7z,全称7-Zip, 是一款开源软件。是目前公认的压缩比例最大的压缩解压软件。

主页:http://www.7-zip.org/

中文主页:http://sparanoid.com/lab/7z/

命令行版本下载:http://7z.sparanoid.com/download.html

7-zip主要特征:

  • 使用了 LZMA 与 LZMA2 算法的 7z 格式 拥有极高的压缩比
  • 支持格式:
    • 压缩 / 解压缩:7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM
    • 解压缩:ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR, Z
  • 对于 ZIP 及 GZIP 格式,7-Zip 能提供比使用 PKZip 及 WinZip 高 2-10% 的压缩比
  • 为 7z 与 ZIP 提供更完善的 AES-256 加密算法
  • 7z 格式支持创建自释放压缩包
  • Windows 资源管理器集成
  • 强大的的文件管理器
  • 更给力的命令行版本
  • 支持 FAR Manager 插件
  • 支持 87 种语言

7z格式主要特征:

  • 开放的结构
  • 高压缩比
  • 强大的 AES-256 加密
  • 能够兼容任意压缩、转换、加密算法
  • 最高支持 16000000000 GB 的文件压缩
  • 以 Unicode 为标准的文件名
  • 支持固实压缩
  • 支持文件头压缩

退出代码

0 : 正常,没有错误;
1 : 警告,没有致命的错误,例如某些文件正在被使用,没有被压缩;
2 : 致命错误;
7 : 命令行错误;
8 : 没有足够的内存;
255 : 用户停止了操作;

使用语法

7z <命令行> [<选项>…] <基本档案名称> [<参数变量>…]

在方括号内的表达式(“[” 和 “]”之间的字符)是可选的。
在书名号内的表达式(“<” 和 “>”之间的字符)是必须替换的表达式(而且要去掉括号)。

7-Zip 支持和 Windows 相类似的通配符:
“*”可以使用星号代替零个或多个字符。
“?”可以用问号代替名称中的单个字符。
如果只用*,7-Zip 会将其视为任何扩展名的全部文件。

原版使用说明

 

命令及实例

a 添加文件到压缩档案

7z a archive1.zip subdir\ :增加subdir文件夹下的所有的文件和子文件夹到archive1.zip中,archived1.zip中的文件名包含subdir\前缀。

7z a archive2.zip .\subdir\* :增加subdir文件夹下的所有的文件和子文件夹到archive1.zip中,archived2.zip中的文件名不包含subdir\前缀。

7z a c:\archive3.zip dir2\dir3\ :archiive3.zip中的文件名将包含dir2\dir3\前缀,但是不包含c:\dir1前缀。
7z a Files.7z *.txt -r : 增加当前文件夹及其子文件夹下的所有的txt文件到Files.7z中。

b 测试 CPU 运行速度及检查内存错误

d 从压缩档案删除文件

7z d archive.zip *.bak -r :从archive.zip中删除所有的bak文件。

e 从压缩档案中释放文件到当前目录中

或者到指定的输出文件夹。输出文件夹设置可以通过 -o (设置输出文件夹) 选项来更改。此命令会将所有被释放的文件放置到一个文件夹。如果您想使用完整路径释放文件,您必须使用 x (完整路径释放) 命令。

7z e archive.zip :从压缩档案 archive.zip 中释放所有文件到当前文件夹。

7z e archive.zip -oc:\soft *.cpp :从压缩档案 archive.zip 中释放 *.cpp 文件到 c:\soft 文件夹。

l 列出压缩档案内容

7z l archive.zip :列出压缩档案 archive.zip 的内容。

t 测试压缩档案文件的完整性

7z t archive.zip *.doc :在压缩档案 archive.zip 中测试 *.doc 文件的完整性。

u 在压缩档案文件中使用较新的文件替换掉较旧的文件

7z u archive.zip *.doc :在压缩档案 archive.zip 中更新 *.doc 文件。

x 在当前目录中,使用完整路径从压缩档案中释放文件.或者到指定的输出文件夹

7z x archive.zip :从压缩档案 archive.zip 中释放所有文件到当前文件夹。

7z x archive.zip -oc:\soft *.cpp :从压缩档案 archive.zip 中释放 *.cpp 文件到 c:\soft 文件夹。

更多的选项

– 在命令行中使“–”后的选项开关“-”都失效。这样就允许在命令行中使用文件名以“-”开头的文件

7z t – -ArchiveName.7z :测试 -ArchiveName.7z 压缩档案.

-i指定压缩时附加文件或一类文件。此选项可附件添加多个类型

i[<recurse_type>]<file_ref> 其中<recurse_type>为可以为r[- | 0](具体的-r选项见后面-r),<file_ref>可以为@{listfile} | !{wildcard}。

7z a -tzip src.zip *.txt -ir!DIR1\*.cpp :从当前目录中添加 *.txt 文件,和 DIR1 目录及其子目录中的 *.cpp 文件到 src.zip 压缩档案。

-x 指定某一文件或某一类文件从操作中排除。此选项可同时排除多个类型

x[<recurse_type>]<file_ref> 其中<recurse_type>为可以为r[- | 0](具体的-r选项见后面-r),<file_ref>可以为@{listfile} | !{wildcard}。

7z a -tzip archive.zip *.txt -x!temp.* :添加除 temp.* 文件之外的所有 *.txt 文件到压缩档案 archive.zip。

-o 指定释放文件的输出文件夹。此选项只能和释放命令配合使用

7z x archive.zip -oc:\Doc :从 archive.zip 压缩档案释放所有文件到 c:\Doc 文件夹。

-r 递归子目录选项

-r 开启递归子目录。对于 e (释放)、l (列表)、t (测试)、x (完整路径释放) 这些在压缩档案中操作的命令, 会默认使用此选项。

-r- 关闭递归子目录。对于 a (添加)、d (删除)、u (更新) 等所有需扫描磁盘文件的命令,会默认使用此选项。

-r0 开启递归子目录。但只应用于通配符。

7z l archive.zip -r- *.doc :列出在 archive.zip 压缩档案中根目录下的 *.doc 文件。

7z a -tzip archive.zip -r src\*.cpp src\*.h :将 src 目录及其子目录中的 *.cpp 及 *.h 文件添加到 archive.zip 压缩档案。

-t 指定压缩档案格式。指定压缩档案格式

它们可以是:zip、7z、rar、cab、gzip、bzip2、tar 或其它格式。而 默认值是 7z 格式。

7z a -tzip archive.zip *.txt :使用 zip 格式从当前目录中添加所有 *.txt 文件到压缩档案 archive.zip。

-y 使 7-Zip 执行命令时的大多数提示失效

您可以使用此选项来阻止在 e (释放) 和 x (完整路径释放) 命令中文件覆盖时的提示。

7z x src.zip -y :从 src.zip 释放所有文件。所有的覆盖提示将被阻止且所有相同文件名的文件将被覆盖。

-v指定分卷大小

{Size}[b | k | m | g]

指定分卷大小,可以使用字节、KB(1 KB=1024 字节),MB(1 MB = 1024 KB)或 GB(1 GB = 1024 MB)。如果您只指定了 {Size},7-zip 将把它视为字。

7z a a.7z *.txt -v10k -v15k -v2m : 创建 a.7z 分卷压缩档案。第一个分卷为 10 KB,第二个为 15 KB,剩下全部为 2 MB。

-p 指定密码

7z x archive.zip -psecret :将设有密码“secret”的压缩档案 archive.zip 中所有文件释放。

-ao 指定在释放期间如何覆盖硬盘上现有的同名文件

语法:-ao[a | s | u ]

-aoa 直接覆盖现有文件,而没有任何提示。

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

-aou 如果相同文件名的文件以存在,将自动重命名被释放的文件。举个例子,文件 file.txt 将被自动重命名为 file_1.txt。

-aot 如果相同文件名的文件以存在,将自动重命名现有的文件。举个例子,文件 file.txt 将被自动重命名为 file_1.txt。

7z x test.zip -aoa :从压缩档案 test.zip 中释放所有文件并却不做提示直接覆盖现有文件。

-an 不解析命令行中的 archive_name 区域

此选项必须和 -i (附加文件) 开关一起使用。比如您为压缩档案使用列表文件,您就需要指定 -ai 选项,所以您需要禁止解析命令行中的 archive_name 区域。
实例见后面的-ai和-ax中。

-ai 指定附加文件,包括压缩档案文件名及通配符.此选项可同时附加多个类型。

ai[<recurse_type>]<file_ref> 其中<recurse_type>为可以为r[- | 0](具体的-r选项见后面-r),<file_ref>可以为@{listfile} | !{wildcard}。

7z t -an -air!*.7z : 在当前目录及子目录下测试 *.7z 压缩档案。

-ax 指定必须从操作中排除的压缩档案。此选项可同时排除多个类型。

ax[<recurse_type>]<file_ref> 其中<recurse_type>为可以为r[- | 0](具体的-r选项见后面-r),<file_ref>可以为@{listfile} | !{wildcard}。

7z t -an -ai!*.7z -ax!a*.7z :测试除 a*.7z 之外的 *.7z 压缩档案。

更多的不常用的选项,可以查看帮助。
例如:-m设置压缩算法;
-scs 设置要压缩的文件的列表文件的字符集;
-seml通过电子邮件发送压缩档;
-sfx创建自释放档;
-si从标准输入读入数据,
-so从输出到标准输 出;
-slp设置大内存模式;
-slt显示技术信息;
-ssc设置区分大小写;
-ssw压缩正在写入的文件;-u更新选项。

高级实例

实例一

7z a -t7z archive.7z *.exe *.dll -m0=BCJ -m1=LZMA:d=21 -ms -mmt

添加 *.exe 及 *.dll 文件到固实压缩档案 archive.7z。使用 LZMA 压缩算法、2 MB 字典大小及 BCJ 转换器。压缩将开启多线程优化(如果可用)。

-ms 默认设置固实模式。在创建固实压缩档案模式中,它把压缩档案中的所有文件都当成一个连续数据流来看待。通常情况下,固实压缩可增加压缩比,特别是在添加大量小文件的时候

-mmt 默认开启多线程模式。

以上两条倒是可以理解,但是“-m0=BCJ -m1=LZMA:d=21 ”又该如何解释?

按照给出的中文的文档说明:
-m0=BCJ – 第一个备选的压缩算法为BCJ

-m1=LZMA:d=21 – 第二个备选的压缩算法为LZMA,指定字典大小为默认的21(2MB的1次方)2MB。

实例二

7z a -t7z DriverTest_1.7z “I:\t\t1\*” -mx=9 -ms=200m -mf -mhc -mhcf -m0=LZMA:a=2:d=25:mf=bt4b:fb=64 -mmt -r

-t7z – 压缩文件的格式为7z

-mx=9 -ms=200m -mf -mhc -mhcf

-m0=LZMA:a=2:d=25:mf=bt4b:fb=64 -mmt
– 指定压缩算法选项

-mx=9 – 设置压缩等级为极限压缩(默认为:LZMA 最大算法、32 MB 字典大小、BT4b Match finder、单词大小为 64、BCJ2 过滤器)

-ms=200m – 开启固实模式,设置固实数据流大小为200MB。

-mf – 开启可执行文件压缩过滤器。

-mhc – 开启档案文件头压缩。

-mhcf – 开启档案文件头完全压缩。我所使用的7z版本为4.42>2.30。

-m0=LZMA:a=2:d=25:mf=bt4b:fb=64

– 第一个备选压缩算法为LZMA,压缩等级为最大压缩,LZMA算法使用的字典大小为25(2MB的5次方)32MB,算法的匹配器为bt4b(所需要内存为d×9.5 + 34 MB),压缩算法的紧凑字节为最大模式的64字节。

-mmt – 开启多线程模式。

-r – 递归到所有的子目录。

7z 各版本信息对比

压缩打包格式(2010-11-18) 压缩打包格式(2016-10-04) 压缩打包格式(2018-12-30) 压缩打包格式(2019-02-21)
APM
Arj
bzip2
Cpio
CramFS
Deb
Dmg
ELF
FAT
FLV
gzip
Lzh
lzma
lzma86
MachO
MBR
MsLZ
Mub
NTFS
PE
Ppmd
Rpm
Split
SWFc
SWF
SquashFS
VHD
Xar
xz
Z
7z
Cab
Chm
Compound
HFS
Iso
Nsis
Rar
tar
Udf
wim
zip
APM
7z
Ar
Arj
bzip2
Chm
Cab
Hxs
Compound
CramFS
Cpio
Dmg
Ext
ELF
FAT
FLV
gzip
GPT
HFS
IHex
Iso
Lzh
lzma
lzma86
MachO
MBR
MsLZ
Mub
Nsis
NTFS
PE
TE
Ppmd
QCOW
Rar5
Rar
Rpm
Split
SquashFS
SWFc
SWF
tar
Udf
UEFIc
UEFIf
VDI
VHD
VMDK
wim
Xar
xz
Z
zip
APM
Ar
Arj
bzip2
Compound
Cpio
CramFS
Dmg
ELF
Ext
FAT
FLV
gzip
GPT
HFS
IHex
Lzh
lzma
lzma86
MachO
MBR
MsLZ
Mub
NTFS
PE
COFF
TE
Ppmd
QCOW
Rpm
Split
SquashFS
SWFc
SWF
UEFIc
UEFIf
VDI
VHD
VMDK
Xar
xz
Z
7z
Cab
Chm
Hxs
Iso
Nsis
Rar
Rar5
tar
Udf
wim
zip
7z
APM
Ar
Arj
bzip2
Cab
Chm
Hxs
Compound
Cpio
CramFS
Dmg
ELF
Ext
FAT
FLV
GPT
gzip
HFS
IHex
Iso
Lzh
lzma
lzma86
MachO
MBR
MsLZ
Mub
Nsis
NTFS
PE
COFF
TE
Ppmd
QCOW
Rar5
Rar
Rpm
Split
SquashFS
SWFc
SWF
tar
Udf
UEFIc
UEFIf
VDI
VHD
VMDK
wim
Xar
xz
Z
zip
压缩方法 头部校验方式
BCJ2
BCJ
PPC
IA64
ARM
ARMT
SPARC
Swap2
Swap4
BZip2
Copy
Deflate64
Deflate
Delta
LZMA2
LZMA
PPMD
Rar1
Rar2
Rar3
Rar5
7zAES
AES256CBC
CRC32
SHA1
SHA256
CRC64
BLAKE2sp
压缩算法 备注
LZMA 改良与优化后的 LZ77 算法
LZMA2 改良的 LZMA 算法
PPMD 基于 Dmitry Shkarin 的 PPMdH 算法
BCJ 32 位 x86 可执行文件转换程序
BCJ2 32 位 x86 可执行文件转换程序
BZip2 标准 BWT 算法
Deflate 标准 LZ77-based 算法

LZMA 算法是 7z 格式的默认算法。LZMA 算法具有以下主要特征:

  • 高压缩比
  • 可变字典大小(最大 4 GB)
  • 压缩速度:运行于 2 GHz 的处理器可达到 1 MB/秒
  • 解压缩速度:运行于 2 GHz 的处理器可达到 10-20 MB/秒
  • 较小的解压缩内存需求(取决于字典大小)
  • 较小的解压缩代码:约 5 KB
  • 支持 Pentium 4 的超线程(Hyper-Threading)技术及多处理器

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: