7-Zip 常用压缩/解压缩命令行指令

Published: 2022-12-01

Tags: Software

本文总阅读量

压缩

创建一个基础压缩包

$ 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
  • 可选值:7zxzzipsplitgzipbzip2tar

指定压缩包大小

如果通过网页上传的归档有大小限制,可以将归档拆分为多份。

$ 7z a archives.7z *.txt -v10m

格式为 archives.7z.001archives.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

参考