- A+
目录
-
- 简介
- 退出代码
- 使用语法
- 原版使用说明
- 命令及实例
- 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 格式 拥有极高的压缩比
- 支持格式:
- 对于 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 会将其视为任何扩展名的全部文件。
原版使用说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
7-Zip [32] 16.04 : Copyright (c) 1999-2016 Igor Pavlov : 2016-10-04 Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...] [<@listfiles...>] <Commands> a : Add files to archive b : Benchmark d : Delete files from archive e : Extract files from archive (without using directory names) h : Calculate hash values for files i : Show information about supported formats l : List contents of archive rn : Rename files in archive t : Test integrity of archive u : Update files to archive x : eXtract files with full paths <Switches> -- : Stop switches parsing -ai[r[-|0]]{@listfile|!wildcard} : Include archives -ax[r[-|0]]{@listfile|!wildcard} : eXclude archives -ao{a|s|t|u} : set Overwrite mode -an : disable archive_name field -bb[0-3] : set output log level -bd : disable progress indicator -bs{o|e|p}{0|1|2} : set output stream for output/error/progress line -bt : show execution time statistics -i[r[-|0]]{@listfile|!wildcard} : Include filenames -m{Parameters} : set compression Method -mmt[N] : set number of CPU threads -o{Directory} : set Output directory -p{Password} : set Password -r[-|0] : Recurse subdirectories -sa{a|e|s} : set Archive name mode -scc{UTF-8|WIN|DOS} : set charset for for console input/output -scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}} : set charset for list files -scrc[CRC32|CRC64|SHA1|SHA256|*] : set hash function for x, e, h commands -sdel : delete files after compression -seml[.] : send archive by email -sfx[{name}] : Create SFX archive -si[{name}] : read data from stdin -slp : set Large Pages mode -slt : show technical information for l (List) command -snh : store hard links as links -snl : store symbolic links as links -sni : store NT security information -sns[-] : store NTFS alternate streams -so : write data to stdout -spd : disable wildcard matching for file names -spe : eliminate duplication of root folder for extract command -spf : use fully qualified file paths -ssc[-] : set sensitive case mode -ssw : compress shared files -stl : set archive timestamp from the most recently modified file -stm{HexMask} : set CPU thread affinity mask (hexadecimal number) -stx{Type} : exclude archive type -t{Type} : Set type of archive -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Update options -v{Size}[b|k|m|g] : Create volumes -w[{path}] : assign Work directory. Empty path means a temporary directory -x[r[-|0]]{@listfile|!wildcard} : eXclude filenames -y : assume Yes on all queries |
命令及实例
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 算法具有以下主要特征: