当前位置:首页>Linux>【Linux·基础篇】Shell 基础|常用命令·归档与压缩(一)

【Linux·基础篇】Shell 基础|常用命令·归档与压缩(一)

  • 2026-08-22 19:56:59
【Linux·基础篇】Shell 基础|常用命令·归档与压缩(一)

本文依旧属于 Linux 文件管理的基础内容,将深入解析 Linux 系统中归档与压缩的核心工具,详细讲解 tar 命令的完整功能,旨在帮助读者掌握高效数据整理与备份文件的实用技能。

[本文基于 CentOS Linux release 7 系统环境]

在日常工作中,你是否遇到过这样的场景:需要将几十个零散文件打包发送给同事或上传服务器,或者面对一个几百兆的日志文件想要减小体积方便存储,亦或是需要备份整个项目目录并保留文件权限结构?

这正是归档与压缩技术的用武之地。通过归档可以将多个文件打包成一个整体,通过压缩可以减少文件包的大小。这两个操作相辅相成,是系统管理、数据备份和文件传输的基础。

掌握归档与压缩命令,意味着你能更高效地处理日常工作中的文件管理任务。无论是在服务器上备份关键数据,还是在开发中打包源代码,或是将大量文档压缩后通过邮件发送,这些技能都能显著提升你的工作效率。

一、归档和压缩的基本概念

在深入具体命令前,我们需要先明确归档与压缩这两个关键概念的区别。

归档(Archiving):将多个文件或目录及其元数据(权限、时间戳、所有者信息等)组合成一个单一文件,但不一定减小文件大小。这一过程有三个关键特点:

  • • 文件集合:将多个独立文件整合为单一文件;
  • • 元数据保留:保持原始文件的权限、时间戳、所有者等信息;
  • • 体积不变:归档后的文件大小基本等于原文件总和。

压缩(Compression):通过算法减少文件占用的磁盘空间,可以针对单个文件或多个文件。主要原理包括:

  • • 消除冗余:识别并消除重复的数据模式;
  • • 算法优化:不同的算法在速度与压缩率之间有不同的权衡;
  • • 可逆操作:无损压缩能完全恢复原始数据。

打个比方,归档就像把散落在地上的书本收集到一个箱子里,便于整体搬运,但箱子大小等于书本体积之和;而压缩就像使用真空袋包装衣物,在保持衣物完好的前提下,最大限度地减少占用空间。

在实际应用中,归档与压缩这两个过程经常结合在一起:先归档后压缩,或者直接使用支持压缩的归档工具,将这两个步骤合二为一,形成“压缩归档”这一常用操作模式。

接下来,我将先介绍最常用的归档和压缩命令——tar。

二、归档和压缩的常用命令·tar

简介

  • • 名称:tar - tape archive(磁带存档)
  • • 语法:tar [OPTION...] [FILE]...
  • • 描述:tar 是最经典、最强大的归档工具。虽然最初是为磁带备份设计的,但现在已成为 Linux 系统中最常用、功能最全面的归档命令。它不仅能将多个文件打包成一个文件,还能保留文件的权限、所有权、时间戳等元数据信息。在实际使用中,tar 也支持直接在归档时进行压缩,这是最常用的方式。

示例

1. 归档操作

  • • 创建归档文件:创建一个新的归档文件,可包含多个文件和目录,并保留完整的文件属性。
    # 将 file1.txt 和 file2.txt 归档到 archive.tar 中tar -cvf archive.tar file1.txt file2.txt# 创建基础归档(归档整个目录)tar -cvf project_backup.tar /home/user/project/

    选项说明:

    • • -c:创建新的归档文件(create)
    • • -v:显示详细过程(verbose)
    • • -f:指定归档文件名(file)
  • • 查看归档内容:列出归档文件中的内容信息,可查看文件名、大小、权限、时间戳等详细属性信息。
    # 列出归档文件中的内容tar -tvf archive.tar

    选项说明:

    • • -t:仅列出归档内容(list),不验证数据完整性。
  • • 提取归档文件:从归档文件中提取内容到文件系统,支持全量提取和选择性提取。
    # 完全提取到当前目录tar -xvf archive.tar# 提取到指定目录tar -xvf archive.tar -C /target/directory/# 仅提取特定文件tar -xvf archive.tar important_document.pdf config.ini# 交互式提取(询问每个文件)tar -xvf archive.tar -w

    选项说明:

    • • -x:提取归档文件(extract)
    • • -C:指定提取目录
    • • -w:交互模式,询问每个文件的处理方式(wait for confirmation)

2. 压缩归档

  • • 创建压缩归档:在创建归档时同时进行压缩,支持多种主流压缩算法。
    # 使用 gzip 压缩(.tar.gz 或 .tgz)tar -czvf archive.tar.gz directory/# 使用 bzip2 压缩(.tar.bz2 或 .tbz2)tar -cjvf archive.tar.bz2 directory/# 使用 xz 压缩(.tar.xz 或.txz)tar -cJvf archive.tar.xz directory/

    选项说明:

    • • -z:使用 gzip 压缩(最常用)
    • • -j:使用 bzip2 压缩(较高压缩率)
    • • -J:使用 xz 压缩(最高压缩率)
  • • 查看压缩归档
    # 查看 .gz 压缩的归档内容tar -tzvf archive.tar.gz# 查看 .bz2 压缩的归档内容tar -tjvf archive.tar.bz2# 查看 .xz 压缩的归档内容tar -tJvf archive.tar.xz
  • • 解压压缩归档
    # 解压 .tar.gz 文件tar -xzvf archive.tar.gz# 解压 .tar.bz2 文件tar -xjvf archive.tar.bz2# 解压 .tar.xz 文件tar -xJvf archive.tar.xz

    通常,tar 能自动识别压缩格式并解压,所以有时可以简化解压选项:

    # tar 通常能自动识别压缩格式并解压tar -xvf archive.tar.gztar -xvf archive.tar.bz2tar -xvf archive.tar.xz

三、小结

tar 是 Linux 系统中功能全面的核心归档工具,它能将多个文件或目录打包成单一文件并完整保留文件属性。其核心操作可通过组合简单选项完成:使用 tar -cvf 创建归档,tar -tvf 查看内容,tar -xvf 提取文件。更重要的是,它能直接整合压缩功能,常用 -z、-j、-J 选项分别调用 gzip、bzip2、xz 算法,实现“归档并压缩”或“解压并展开”的一步操作(如 tar -czvf 创建 .tar.gz,tar -xvf 智能解压),是文件备份、打包和分发的首选工具。


此番炼器手札,炉火尚未全熄。若道友观之有趣,或可暂留此间,结一尘缘。待下回开炉铸器,新得感悟,必先与同道分享。 

最新文章

随机文章