压缩
创建一个基础压缩包
$ 7z a archives.7z *.txt
创建带密码的压缩包
$ 7z a archives.7z -p123456 -mhe *.txt
$ 7z a archives.7z -p"passwd@7z" -mhe *.txt
-p
参数后跟着密码,如果密码有特殊字符,需要用双引号包裹。-mhe
参数设置同时加密文件名。
创建压缩包后删除原文件
$ 7z a archives.7z *.txt -sdel
创建的压缩包保留文件路径
保留文件路径,以便解压缩时还能将文件解压到原处。
$ 7z a archives.7z -spf /tmp/1.txt a/2.txt
对应的解压缩命令
$ 7z x archives.7z -spf
- 解压缩时如果文件存在会弹出确认
- 解压缩时如果原目录不存在则会自动创建
指定不同的压缩包类型
$ 7z a -tzip a.zip 1.txt
- 可选值:
7z
、xz
、zip
、split
、gzip
、bzip2
、tar
等
指定压缩包大小
如果通过网页上传的归档有大小限制,可以将归档拆分为多份。
$ 7z a archives.7z *.txt -v10m
格式为 archives.7z.001
、archives.7z.002
等
- 注意事项:压缩过程中切不可移动 “已生成的” 归档,即使是
.001
号归档也可能在生成过程中被动态更新。 - 解压缩时候需解压首个 Volume
7z e archives.7z.001
。
解压
基础解压缩
解压缩到当前目录
$ 7z e archives.7z
解压缩到指定路径
$ 7z e archives.7z -o/tmp
解压带密码的压缩包
$ 7z e archives.7z -p123456
解压缩时保留解压缩文件的相对路径
假设压缩包内文件如下 a\b\c\1.txt
,使用 e
解压缩,1.txt 会直接出现在当前目录下,不会保留 a/b/c
层级。
$ 7z e archives.7z a/b/c/\*.txt
如果需要保留压缩包内路径,使用 x
命令,解压缩后,文件会保存到当前目录下的 a/b/c/1.txt
。
$ 7z x archives.7z a/b/c/\*.txt
解压缩指定内容
只解压缩部分文件,可以使用如下命令。
$ 7z e archives.7z \*.txt -r
# 等同于
$ 7z e archives.7z "*.txt" -r
-r
参数是递归查找压缩包目录下所有匹配的文件。- 同样可以使用
x
命令,保留解压出来文件的路径。
解压缩覆盖无需确认
$ 7z x archives.7z -y
查看
查看压缩包内文件信息
$ 7z l archives.7z
没有使用 -mhe
加密的压缩包可以看到文件名。
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2022-11-30 19:46:27 ....A 700 48 1.txt
2022-11-30 19:46:45 ....A 2356 2.txt
------------------- ----- ------------ ------------ ------------------------
2022-11-30 19:46:45 3056 48 2 files
使用 -mhe
参数加密的压缩包首先需要输入密码,否则无法查看到任何内容。
查看压缩包详细信息
$ 7z l -slt archives.7z
输出
7-Zip [64] 17.04 : Copyright (c) 1999-2021 Igor Pavlov : 2017-08-28
p7zip Version 17.04 (locale=utf8,Utf16=on,HugeFiles=on,64 bits,4 CPUs x64)
Scanning the drive for archives:
1 file, 4920 bytes (5 KiB)
Listing archive: archives.7z
--
Path = archives.7z
Type = 7z
Physical Size = 4920
Headers Size = 174
Method = LZMA2:24
Solid = +
Blocks = 1
----------
Path = /tmp/1.txt
Size = 9
Packed Size = 4746
Modified = 2022-12-01 11:25:19
Attributes = A_ -rw-r--r--
CRC = ADD766B6
Encrypted = -
Method = LZMA2:24
Block = 0
Path = a/2.txt
Size = 13931690
Packed Size =
Modified = 2022-12-01 10:20:24
Attributes = A_ -rw-r--r--
CRC = 232240F1
Encrypted = -
Method = LZMA2:24
Block = 0