在 Linux 系统管理中,处理压缩和归档文件是一项基础且至关重要的技能,CentOS 作为一款广泛使用的企业级操作系统,其命令行环境提供了强大的工具来应对各种归档格式,tar、zip 和 rar 是最为常见的三种,本文将详细介绍如何在 CentOS 系统中熟练地使用命令行工具来解压和管理这些格式的文件,从基础命令到高级技巧,旨在为用户提供一份全面而实用的参考指南。

tar 命令详解:Linux 世界的归档基石
tar(Tape Archive)是 Linux 和 Unix 系统中最经典的归档工具,需要明确的是,tar 本身主要负责将多个文件和目录打包成一个单一的归档文件(.tar),但它并不直接进行压缩,压缩功能是通过与其他压缩工具(如 gzip、bzip2、xz)结合使用来实现的,这也是我们常见到 .tar.gz、.tar.bz2、.tar.xz 等复合扩展名的原因。
核心选项
tar 命令的功能由其选项控制,以下是一些最核心的选项:
-c:创建一个新的归档文件。-x:从归档文件中解压文件。-t:列出归档文件的内容,不解压。-v:显示详细的处理过程(verbose模式)。-f:指定归档文件的名称,这个选项通常放在其他选项之后,并紧跟文件名。-z:通过gzip进行压缩或解压(处理.tar.gz或.tgz文件)。-j:通过bzip2进行压缩或解压(处理.tar.bz2文件)。-J:通过xz进行压缩或解压(处理.tar.xz文件)。-C:在执行操作前,先切换到指定的目录。
常用操作示例
创建归档文件
打包不压缩:将
my_project目录打包为project.tar。tar -cvf project.tar my_project/
打包并用 gzip 压缩:生成
.tar.gz文件,这是最常见的形式。tar -czvf project.tar.gz my_project/
打包并用 bzip2 压缩:生成
.tar.bz2文件,通常比 gzip 压缩率更高。tar -cjvf project.tar.bz2 my_project/
打包并用 xz 压缩:生成
.tar.xz文件,通常压缩率最高,但耗时也最长。tar -cJvf project.tar.xz my_project/
解压归档文件
解压
.tar文件:tar -xvf project.tar
解压
.tar.gz文件:tar -xzvf project.tar.gz
解压
.tar.bz2文件:tar -xjvf project.tar.bz2
解压到指定目录:将
project.tar.gz解压到/tmp/extract目录。tar -xzvf project.tar.gz -C /tmp/extract
查看归档内容

在不解压的情况下查看归档文件里包含哪些内容:
tar -tvf project.tar.gz
为了方便查阅,下表小编总结了 tar 命令的常用组合:
| 操作目的 | 命令格式 | 示例 |
|---|---|---|
| 创建 .tar | tar -cvf | tar -cvf archive.tar /path/to/dir |
| 创建 .tar.gz | tar -czvf | tar -czvf archive.tar.gz /path/to/dir |
| 创建 .tar.bz2 | tar -cjvf | tar -cjvf archive.tar.bz2 /path/to/dir |
| 解压 .tar | tar -xvf | tar -xvf archive.tar |
| 解压 .tar.gz | tar -xzvf | tar -xzvf archive.tar.gz |
| 解压 .tar.bz2 | tar -xjvf | tar -xjvf archive.tar.bz2 |
处理 .zip 文件:跨平台的通用选择
.zip 格式因其出色的跨平台兼容性(在 Windows、macOS 和 Linux 上都得到广泛支持)而非常流行,在 CentOS 上,处理 .zip 文件需要 zip 和 unzip 工具包。
安装工具
在最小化安装的 CentOS 中,这些工具可能未预装,可以通过 yum 或 dnf 进行安装:
# 对于 CentOS 7 sudo yum install zip unzip # 对于 CentOS 8/9/Stream sudo dnf install zip unzip
常用操作示例
解压
.zip文件:unzip archive.zip
这会将文件解压到当前目录。
解压到指定目录:
unzip archive.zip -d /path/to/destination/
查看
.zip文件内容:unzip -l archive.zip
创建
.zip文件:# -r 表示递归地包含目录下的所有文件和子目录 zip -r my_archive.zip my_project/
处理 .rar 文件:专有格式的解决方案
.rar 是一种专有的归档文件格式,以其高压缩率和强大的分卷、恢复记录功能而闻名,由于其专有性质,CentOS 的默认软件源中并不包含 unrar 工具,我们需要先启用 EPEL (Extra Packages for Enterprise Linux) 仓库。
安装 unrar
启用 EPEL 仓库:
EPEL 是由 Fedora 社区维护的,为 RHEL 及其衍生版(如 CentOS)提供高质量软件包的仓库。# 对于 CentOS 7 sudo yum install epel-release # 对于 CentOS 8/9/Stream sudo dnf install epel-release
:
启用 EPEL 后,就可以轻松安装unrar了。# 对于 CentOS 7 sudo yum install unrar # 对于 CentOS 8/9/Stream sudo dnf install unrar
注意:EPEL 仓库通常只提供免费的
unrar(用于解压),而不提供rar(用于压缩),如果需要创建.rar文件,可能需要从 RARLAB 官网下载命令行工具。
常用操作示例
unrar 的命令语法与 tar 和 unzip 略有不同。
完整路径解压(推荐):使用
x参数会将文件连同其原始目录结构一起解压到当前目录。unrar x archive.rar
解压到当前目录:使用
e参数会将所有文件直接解压到当前目录,不保留原始目录结构。unrar e archive.rar
查看
.rar文件内容:unrar l archive.rar
测试归档文件的完整性:
unrar t archive.rar
相关问答 FAQs
问题 1:我下载了一个文件,但不确定它是 .tar.gz 还是 .tar.bz2,甚至不知道它的压缩类型,我该如何正确解压?
解答: 现代版本的 tar 命令非常智能,通常可以自动检测压缩类型,你可以直接尝试使用通用的解压命令:
tar -xvf your_archive_file.tar.*
在很多情况下,这个命令就能成功解压,如果失败,你可以使用 file 命令来精确识别文件类型:
file your_archive_file.tar.*
该命令会输出文件的详细信息,your_archive_file.tar.gz: gzip compressed data... 或 your_archive_file.tar.bz2: bzip2 compressed data...,根据输出结果,你就可以使用正确的 -z (gzip) 或 -j (bzip2) 选项来解压了。
问题 2:为什么在 CentOS 上执行 unrar 命令时,系统提示“command not found”?
解答: 这个提示意味着 unrar 工具没有安装在你的系统上,由于 .rar 格式的专有性,它不被包含在 CentOS 的默认基础软件源中,要解决这个问题,你需要执行两个步骤:启用 EPEL (Extra Packages for Enterprise Linux) 第三方仓库,它提供了许多额外的软件包;通过 yum 或 dnf 从 EPEL 仓库中安装 unrar,具体命令如下:
# 1. 启用 EPEL 仓库 sudo dnf install epel-release # 2. 安装 unrar sudo dnf install unrar
安装完成后,你就可以在终端中正常使用 unrar 命令来解压 .rar 文件了。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复