Linux 解压命令实战指南:从 tar 到 7z
Linux 解压工具链涵盖 tar、zip、rar、7z 等多种格式。核心在于掌握 tar 命令的通用参数及针对不同压缩算法(gzip, bzip2, xz)的特定选项。跨平台交互需注意 zip 和 rar 的安装及编码问题,如中文乱码处理。特殊场景下单文件压缩使用 gunzip 或 bunzip2。生产环境中应防范 Tarbomb 风险,通过查看内容确认结构,并注意权限与属组管理。

Linux 解压工具链涵盖 tar、zip、rar、7z 等多种格式。核心在于掌握 tar 命令的通用参数及针对不同压缩算法(gzip, bzip2, xz)的特定选项。跨平台交互需注意 zip 和 rar 的安装及编码问题,如中文乱码处理。特殊场景下单文件压缩使用 gunzip 或 bunzip2。生产环境中应防范 Tarbomb 风险,通过查看内容确认结构,并注意权限与属组管理。

在 Linux 服务器运维或开发过程中,处理压缩包是极其高频的操作。面对 .tar.gz, .zip, .xz, .rar 等五花八门的后缀名,很多开发者习惯每次去搜索引擎查参数。
事实上,Linux 的解压工具链虽然繁杂,但有其内在逻辑。本文将从工程实用角度,梳理最核心的解压命令,助你建立清晰的工具索引。
tar (Tape Archive) 是 Linux 下最基础、最通用的归档工具。历史上,由于压缩算法的不同(gzip, bzip2, xz),我们需要传递不同的参数告诉 tar 如何解压。
但在现代 Linux 发行版(如 CentOS 7+, Ubuntu 16.04+)中,GNU tar 已经足够智能,支持自动识别压缩格式。
无论后缀是 .tar.gz, .tar.bz2, .tar.xz 还是 .tgz,你只需要记住这一条命令:
# -x: 解压 (Extract)
# -v: 显示详细信息 (Verbose)
# -f: 指定文件 (File) -> 必须放在参数最后
tar -xvf filename.tar.xx
如果你的环境较老,或者脚本需要兼容性,了解具体的压缩参数依然必要:
纯归档 (.tar):仅打包未压缩。
tar -xvf filename.tar
XZ 格式 (.tar.xz):Linux 内核源码常用格式,压缩率极高。
tar -Jxvf filename.tar.xz
Bzip2 格式 (.tar.bz2):压缩率比 gzip 高,但解压稍慢。
tar -jxvf filename.tar.bz2
Gzip 格式 (.tar.gz, .tgz):Web 服务器最常见格式,压缩速度快。
tar -zxvf filename.tar.gz
建议:在编写自动化运维脚本(Shell Script)时,建议显式加上对应参数(如
-z或-j),以提高脚本在不同 Unix/Linux 发行版之间的兼容性。
这两类格式通常源自 Windows 环境。Linux 默认精简版系统可能未预装相关工具,需要通过包管理器安装。
ZIP 是跨平台通用性最好的格式。
解压命令:不要直接 unzip,这很容易把大量文件散落在当前目录,污染环境。推荐指定解压目录:
# -d: 指定目录 (Directory)
unzip filename.zip -d /target/path
安装工具:
# Debian/Ubuntu
sudo apt install unzip
# CentOS/RHEL
sudo yum install unzip
RAR 是专有格式,Linux 支持相对较弱,通常需要第三方仓库支持。
常用命令:注意区分 x 和 e 参数,这决定了你的目录结构是否会被保留。
# 推荐:解压并保持原有的目录树结构
unrar x filename.rar
# 不推荐:将所有文件平铺解压到当前目录(极易导致混乱)
unrar e filename.rar
需要安装 p7zip 或 p7zip-full 包。
# x: extract with full paths
7z x filename.7z
当你在 Linux 系统目录中看到 .gz 或 .bz2(没有 .tar 前缀)时,这表示它只是对单个文件进行了压缩,而不是归档包。
.bz2 文件:
bunzip2 filename.bz2
.gz 文件:
gunzip filename.gz
在实际生产环境中,除了知道怎么解压,还需要处理各种异常情况。
当 Windows 上生成的 .zip 包传到 Linux 解压时,中文文件名往往会变成乱码。这是因为 Windows 默认使用 GBK/CP936 编码,而 Linux 使用 UTF-8。
解决方案:使用 -O 参数指定源编码。
unzip -O CP936 filename.zip
sudo。tar 包时,默认会尝试保留文件原本的用户 ID 和权限位。如果希望文件归属为当前用户,在解压后通常需要执行 chown -R user:group target_dir 进行修正。有些压缩包内部没有顶层文件夹,解压后会瞬间在当前目录下生成成百上千个文件。
最佳实践:解压前先查看内容。
# 不解压,仅列出内容
tar -tf filename.tar.gz
unzip -l filename.zip
| 后缀名 | 核心命令 | 场景备注 |
|---|---|---|
| .tar.gz / .tgz | tar -xvf file.tar.gz | 最常用,优先掌握 |
| .tar.bz2 | tar -xvf file.tar.bz2 | 压缩率更高 |
| .tar.xz | tar -xvf file.tar.xz | 内核及源码包常用 |
| .zip | unzip file.zip -d ./dir | 务必指定输出目录 |
| .rar | unrar x file.rar | 注意保持目录结构 |
| .7z | 7z x file.7z | 高压缩比存档 |
掌握 tar -xvf 能够应付 90% 的 Linux 运维场景,但理解每种格式背后的适用场景,是迈向资深工程师的必经之路。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online