Linux 常见压缩格式的解压命令对比,已 WSL2 实测。
一、识别压缩包类型
先看后缀再选命令。常见组合:
.tar/.tar.gz/.tgz→ tar.zip→ unzip 或 7z.gz/.bz2/.xz→ 对应单文件工具.7z→ 7z
也可用 file 命令确认真实格式,避免被错误后缀误导 [1]。
二、tar 与 tar.* 系列
tar 只打包不压缩;压缩由 gzip/bzip2/xz 承担。解压时 tar 自动识别压缩格式:
tar -xvf archive.tar
tar -xzvf archive.tar.gz
tar -xjvf archive.tar.bz2
tar -xJvf archive.tar.xz
-x 解压,-v 显示过程,-f 指定文件名,-z/-j/-J 分别对应 gzip/bzip2/xz [1]。
指定目标目录:
tar -xzvf archive.tar.gz -C /target/dir
-C 切换目标目录,目录不存在时 tar 不会自动创建 [2]。
三、zip / jar 解压
unzip 直接解压 ZIP 及其变体(jar、apk 本质上都是 zip):
unzip archive.zip
unzip archive.zip -d /target/dir
unzip -l archive.zip
默认解压到当前目录;-d 指定目录;-l 列出内容 [3]。
四、gzip / bzip2 / xz 单文件
这三个工具只处理单文件压缩流,不打包目录:
gunzip -c file.txt.gz > file.txt
gunzip file.txt.gz
bunzip2 -c file.txt.bz2 > file.txt
xz -d -c file.txt.xz > file.txt
xz -d file.txt.xz
-c 输出到 stdout,保留原压缩包;不加 -c 会删除原文件 [4]。
bzip2 解压时自动识别 .bz2、.bz、.tbz2、.tbz 后缀 [6]。
xz 与 gzip 参数对齐,-d 解压,-k 保留原文件 [5]。
五、7z 万能解压
7z(p7zip)支持 7z、zip、tar、gz、bz2、xz 等几十种格式,适合统一处理:
7z x archive.zip -o/target/dir
7z x archive.7z
x 保持完整路径;-o 指定输出目录,路径与 -o 之间无空格 [7]。
六、排错速查与回滚
tar: Cannot open: No such file or directory:-f后面没跟文件名,或路径写错。unzip: cannot find or open archive.zip:文件不存在或权限不足,ls -l确认。gzip: not in gzip format:实际不是 gzip 压缩,file确认格式。xz: Unexpected end of input:压缩包损坏,重新下载。7z: No such file or directory:p7zip-full 未安装,apt install p7zip-full。
回滚/撤销:解压本身不修改原压缩包;误删原文件后无法通过解压恢复,操作前建议用 -c 保留原文件。
—
草稿待审
参考资料
- [1] tar(1) – Linux manual page (man7.org)(tar(1) 手册页)
- [2] 2.8 How to Extract Members from an Archive (GNU Tar Manual)(GNU tar 提取指南)
- [3] unzip(1L) – Ubuntu 24.04 noble manual page(unzip(1L) 手册页)
- [4] GNU Gzip Manual (gnu.org)(gzip 手册页)
- [5] XZ(1) – XZ Utils manual (tukaani.org)(xz(1) 手册页)
- [6] How to use bzip2 (gcc.gnu.org)(bzip2 手册页)
- [7] Frequently Asked Questions (7-zip.org)(7-Zip FAQ)
文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。