归档(Archiving)
.tar文件压缩(Compression)
.gz、.bz2、.xz、.ziptar 本身是 打包工具(将多个文件 / 目录合并为一个 .tar 归档文件),不直接压缩。但它可以结合 gzip、bzip2、xz 等压缩算法,实现 “打包 + 压缩” 一体操作,生成 .tar.gz、.tar.bz2 等常见压缩包。
基本语法:
tar [选项] [归档文件名] [要打包/解压的文件/目录]
-c | 创建 | -v、-f 结合(-cvf) |
-x | 提取 | -v、-f 结合(-xvf) |
-v | 显示 | |
-f | 指定 | -f archive.tar.gz |
-z | gzip 算法压缩 / 解压(生成 .tar.gz 或 .tgz) | -czvf-xzvf(解压) |
-j | bzip2 算法压缩 / 解压(生成 .tar.bz2) | -cjvf-xjvf |
-J | xz 算法压缩 / 解压(生成 .tar.xz,压缩率更高,速度较慢) | -cJvf-xJvf |
-C | -x 模式下使用) | tar -xvf archive.tar -C /tmp/ |
-t | 查看 | tar -tvf archive.tar |
--exclude | tar -czvf backup.tar.gz --exclude=tmp/ ./data/ |
将 docs/ 目录和 file.txt 打包为 archive.tar:
tar -cvf archive.tar docs/ file.txt # -c(创建) -v(显示) -f(指定文件)(1)gzip 压缩(.tar.gz/.tgz,兼容性最好)
tar -czvf backup.tar.gz data/ # 打包并压缩 data/ 为 backup.tar.gztar -xzvf backup.tar.gz # 解压 backup.tar.gz 到当前目录tar -xzvf backup.tar.gz -C /opt/# 解压到指定目录 /opt/(2)bzip2 压缩(.tar.bz2,压缩率略高于 gzip)
tar -cjvf logs.tar.bz2 /var/log/ # 打包压缩日志目录tar -xjvf logs.tar.bz2 # 解压(3)xz 压缩(.tar.xz,压缩率最高,适合大文件)
tar -cJvf video.tar.xz movie.mp4 # 压缩大视频文件tar -xJvf video.tar.xz # 解压tar -tvf backup.tar.gz # 查看 .tar.gz 中的文件列表tar -czvf project.tar.gz --exclude=project/temp/ --exclude=project/*.log project/#打包project/目录,但排除project/temp/和project/*.logzip 是 压缩工具(同时支持打包 + 压缩),生成的 .zip 文件可在 Windows、macOS 等系统直接解压,兼容性极强。但压缩率通常低于 tar.gz 或 tar.xz。
基本语法:zip [选项] [压缩文件名.zip] [要压缩的文件/目录]
-r | 递归 |
-q | |
-m | |
-u | |
-d | |
-9 | -6,级别越高,压缩率越高,速度越慢) |
zip file.zip file.txt # 压缩单个文件 file.txt 为 file.zipzip -r docs.zip docs/ # 递归压缩 docs/ 目录为 docs.zip(必须加 -r)zip -r9q photos.zip photos/ # 最高级别压缩 photos/ 目录,安静模式zip -u docs.zip new_file.txt #向docs.zip中添加 new_file.txtzip -d docs.zip old_file.txt #从 `docs.zip` 中删除 `old_file.txt`:zip -rm temp.zip temp/ #压缩 temp/ 后删除原目录(慎用!).zip 文件unzip 是 zip 的配套工具,专门用于解压 .zip 压缩包。
基本语法: unzip [选项] [压缩文件名.zip]
-d | |
-l | 查看 |
-q | |
-o | |
-n |
unzip docs.zip # 解压 docs.zip 到当前目录,会提示覆盖确认unzip photos.zip -d /home/user/pics/ #解压photos.zip到 /home/user/pics/unzip -l docs.zipunzip -o docs.zip # 覆盖当前目录中同名文件,不提示-r,否则只压空文件夹;.zip,Linux 内部备份优先 .tar.gz。核心功能:仅对单个文件进行压缩 / 解压,不能打包目录,压缩后删除原文件。格式:.gz
若要压缩多个文件,通常会先使用 tar 打包为 .tar 再用 gzip 压缩为 .tar.gz 或 .tgz 格式,如 tar -cvzf archive.tar.gz directory/
常用选项
-d:解压(等同于 gunzip)-v:显示详细过程-#:压缩级别(1-9,默认 6;9 压缩率最高,速度最慢)-k:保留原始文件,不删除。-r:递归压缩目录下的所有文件。-v:显示详细的压缩或解压缩过程。-l:显示压缩文件的详细信息,如压缩率、原始大小等。常用示例
gzip file.txt # 压缩为 file.txt.gz(原文件消失,默认删除原文件)gzip -k file.txt # 保留原始文件压缩gzip -9 file.txt # 最高压缩率压缩gzip -d file.txt.gz # 解压(等同于 gunzip file.txt.gz)gunzip file.txt.gz # 解压gzip -v *.log # 批量压缩所有 .log 文件gzip -r directory/ #递归压缩整个directory目录gzip -l example.txt.gz # 显示压缩文件信息gzip -t example.txt.gz #测试压缩文件的完整性,如果文件完整且无损坏,该命令将不会有输出;否则会提示错误。核心功能:gunzip 是 gzip 官方配套解压命令,专门解压 .gz 格式,语法简单直观。
语法:gunzip [选项] 压缩包名.gz常用选项:
-v:显示解压详情-k:解压后保留压缩包示例:
gunzip file.txt.gz # 解压.gz文件,删除压缩包gunzip -k file.txt.gz # 解压后保留原.gz压缩包gzip -d file.txt.gz # 等效gunzip,解压.gz压缩率高于 gzip,仅单文件压缩,生成 .bz2 格式;适合文本、日志类文件。语法:bzip2 [选项] 文件名常用选项:
-v:显示详情-k:保留原文件-d:解压缩一个 .bz2 文件。相当于使用 bunzip2 命令。-z:强制压缩,即使文件已经被压缩。-t:测试压缩文件的完整性。-1 到 -9:指定压缩比。-1 是最快的压缩,压缩率最低;-9 是最慢的压缩,压缩率最高。默认是 -9。示例:
bzip2 data.txt # 此命令会将data.txt文件压缩为data.txt.bz2bzip2 -k data.txt # 压缩并保留原文件bzip2 -d example.txt.bz2 # 解压缩文件,等于bunzip2 example.txt.bz2bzip2 -t example.txt.bz2 # 测试压缩文件,使用 -t 选项来测试压缩文件的完整性bunzip2 专门解压 .bz2 压缩包,替代 bzip2 -d,可读性更强。语法:bunzip2 [选项] 压缩包名.bz2常用选项:
-k:解压后保留 .bz2 压缩包-v:可视化解压过程示例:
bunzip2 data.txt.bz2 # 解压.bz2文件bunzip2 -k data.txt.bz2 # 解压+保留压缩包bzip2 -d data.txt.bz2 # 等效bunzip2Linux 最高压缩率单文件工具,生成 .xz 格式;压缩慢、解压快,适合镜像、超大安装包。语法:xz [选项] 文件名常用选项:
-k:保留原大文件-9:极致压缩-v:显示进度示例:
xz system.img # 压缩为system.img.xzxz -k system.img # 压缩超大文件,保留原文件unxz 是 xz 专用解压命令,极简高效,替代 xz -d。语法:unxz [选项] 压缩包名.xz常用选项:
-k:解压后保留 .xz 压缩包-v:查看解压日志示例:
unxz system.img.xz # 快速解压.xz大文件unxz -k system.img.xz # 解压后保留压缩包备份xz -d system.img.xz # 等效unxzzcat file.txt.gz # 查看gz文件内容bzcat file.txt.bz2 # 查看bz2文件内容xzcat file.txt.xz # 查看xz文件内容| 格式 | 核心工具 | 压缩率 | 速度 | 跨平台 | 适用场景 |
|---|---|---|---|---|---|