linux常用命令4压缩命令
目录
linux常用命令(4)——压缩命令
博客主页:
hi,大家好,我是christine-rr ! 今天来分享一下linux常用命令——压缩
linux常用命令——压缩
1. tar 文件打包/解压
tar
本身是 打包工具(将多个文件 / 目录合并为一个 .tar
归档文件),不直接压缩。但它可以结合 gzip
、bzip2
、xz
等压缩算法,实现 “打包 + 压缩” 一体操作,生成 .tar.gz
、.tar.bz2
等常见压缩包。
基本语法:
tar [选项] [归档文件名] [要打包/解压的文件/目录]
核心选项(必记)
选项 | 含义 | 常用组合 |
---|---|---|
-c | 创建 新的归档文件(打包) | 与 -v 、-f 结合(-cvf ) |
-x | 提取 归档文件中的内容(解压) | 与 -v 、-f 结合(-xvf ) |
-v | 显示 打包 / 解压的详细过程(verbose,可选,方便查看进度) | 几乎所有场景都可用 |
-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.gz
tar -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/*.log
2. zip :文件压缩(跨平台兼容)
zip
是 压缩工具(同时支持打包 + 压缩),生成的 .zip
文件可在 Windows、macOS 等系统直接解压,兼容性极强。但压缩率通常低于 tar.gz
或 tar.xz
。
基本语法:zip [选项] [压缩文件名.zip] [要压缩的文件/目录]
核心选项
选项 | 含义 |
---|---|
-r | 递归 压缩目录(必须加,否则只压缩目录本身,不包含内容) |
-q | 安静模式(不显示压缩过程) |
-m | 压缩后 删除原文件(move,慎用) |
-u | 向已有的 zip 压缩包中 添加新文件 |
-d | 从已有的 zip 压缩包中 删除文件 |
-9 | 最高压缩级别(默认是 -6 ,级别越高,压缩率越高,速度越慢) |
常用场景示例
- 压缩文件 / 目录
zip file.zip file.txt # 压缩单个文件 file.txt 为 file.zip
zip -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.txt
- 从压缩包删除文件
zip -d docs.zip old_file.txt #从 `docs.zip` 中删除 `old_file.txt`:
- 压缩并删除原文件
zip -rm temp.zip temp/ #压缩 temp/ 后删除原目录(慎用!)
3. uzip : 解压 .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.zip
- 强制覆盖解压(无需确认)
unzip -o docs.zip # 覆盖当前目录中同名文件,不提示
常见压缩格式对比与选择
不同压缩命令生成的格式各有特点,选择时需考虑 兼容性、压缩率 和 速度:
格式 | 工具组合 | 压缩率 | 速度 | 跨平台兼容性 | 适用场景 |
---|---|---|---|---|---|
.tar | tar | 无 | 快 | 中等(需 tar 工具) | 仅打包,不压缩(如备份临时合并) |
.tar.gz | tar + gzip | 中 | 快 | 高 | 日常文件 / 目录压缩(最常用) |
.tar.bz2 | tar + bzip2 | 高 | 中 | 中 | 对压缩率要求较高的场景 |
.tar.xz | tar + xz | 最高 | 慢 | 中 | 大文件压缩(如系统镜像) |
.zip | zip/unzip | 中 | 中 | 极高(Windows/macOS 通用) | 跨平台文件传输 |