7z 命令行基本语法为
1
|
7z <command> [<switch>...] <base_archive_name> [<arguments>...]
|
通配符
*.txt
: means all files with an extension of “.txt”
?a*
: means all files with a second character of “a”
*1*
: means all names that contains character “1”
*.*.*
: means all names that contain two at least “.” characters
commands
l (List)
列出压缩文件中的所有内容
a (Add)
1
2
3
4
5
6
7
8
9
|
7z a -tzip archive.zip subdir
# -tzip 表示压缩包格式为 zip
# -t{archive_type}, 若不指定, 则使用默认格式 7z
# 将 文件夹 subdir 及其子文件、子文件夹 添加到压缩文件 archive.zip
7z a -tzip Files.zip *.txt -r
# -r (Recurse), 表示递归, 包含子文件夹
# 将当前文件夹及子文件夹下面的所有 .txt 文件添加到压缩包 Files.zip 中
# 生成的压缩包包含目录结构, 但仅限于包含 目标类型文件的子文件夹
|
1
2
3
4
5
|
7z e archive.zip
# extracts all files from archive archive.zip to the current directory.
7z e archive.zip -oc:\soft *.cpp -r
# extracts all *.cpp files from archive archive.zip to c:\soft folder.
|
x (eXtract with full paths) command
1
2
3
4
5
|
7z x archive.zip
# extracts all files from the archive archive.zip to the current directory.
7z x archive.zip -oc:\soft *.cpp -r
# 提取压缩包`archive.zip`中所有的 `.cpp` 文件到文件夹 c:\soft 中
|
命令 e 和 x 解压的区别
使用 x
参数解压, 会保留压缩包内部的文件夹结构, 解压结果和日常使用右键->解压缩至…, 结果相同
使用 e 参数提取文件, 则会将压缩包内部所有层级的文件/文件夹都提取到同一个文件夹中
Examples
将当前路径下的所有 zip
文件解压到当前路径下, 以压缩包名称命名的文件夹中
1
2
3
4
|
# 如果 7z.exe 路径没有加到环境变量中, 需要指定完整路径
&"C:\Program Files\7-Zip\7z.exe" x *.zip -o*
# 如果已经加入到环境变量中, 可以直接使用 7z 命令
7z x *.zip -o*
|
官方文档 - 7-Zip Documentation