1. Ubuntu 上压缩与解压的基础知识
在 Ubuntu 上执行“压缩”的主要目的有以下三点:
- 减小文件大小以节省存储空间
- 将多个文件打包为一个,以便发送和共享
- 创建备份和归档(用于存储的打包集合)
在 Ubuntu 上,命令行(终端)操作是标准方式。你也可以通过 GUI(文件管理器)完成,但在实际工作和服务器环境中,命令行使用是常态。
你首先需要了解的关键点是,“压缩”和“归档”是不同的概念。
1.1 压缩与归档的区别
这是大多数初学者感到困惑的地方。
- Compression → 减少数据大小的处理 示例:gzip、bzip2、xz
- Archive → 将多个文件和文件夹打包成单个文件的处理 示例:tar
一个重要事实
tar 命令并不是“压缩”。
严格来说,它是一个仅“打包”的命令。
如果想要同时压缩,需要将其与 gzip 或 xz 结合使用。
示例:
tar -czvf archive.tar.gz folder/
含义:
c= 创建z= gzip 压缩v= 详细输出(显示处理的项目)f= 指定输出文件名
1.2 Ubuntu 常见的压缩格式
以下格式在 Ubuntu 上常被使用。
| Format | Features | Main use |
|---|---|---|
| zip | High Windows compatibility | Sharing with other OSes |
| tar.gz | Linux standard format | General-purpose compression |
| tar.bz2 | Higher compression than gzip | Prioritize smaller size |
| tar.xz | Very high compression | Large datasets |
如何选择
- 与 Windows 共享 → zip
- 仅在 Linux 中使用 → tar.gz
- 大小为首要考虑 → tar.xz
1.3 压缩前的基本检查命令
检查当前目录:
pwd
列出文件:
ls -l
检查大小:
du -sh folder/
常见的绊脚点
- 未检查当前目录就运行命令,导致文件在意外位置创建
- 相对路径拼写错误(例如
../folder) - 压缩前未进行大小检查,导致磁盘空间不足
1.4 常见误解与注意事项
1. 图像和视频压缩幅度有限
因为 JPEG 和 MP4 已经是压缩格式,它们的体积通常不会明显缩小。
2. 单独使用 tar 并不减小体积
以下仅“打包”。
tar -cvf archive.tar folder/
大小几乎保持不变。
3. 大文件会增加 CPU 负载
CPU 使用率可能会升高,尤其在使用 xz 时。
4. 注意权限错误
如果操作系统目录,需要使用 sudo。
2. 在 Ubuntu 上使用 zip 格式进行压缩与解压
在 Ubuntu 与 Windows 之间交换文件时,zip 格式具有最好的兼容性。
许多搜索“ubuntu compression”的用户首先寻找 zip。
在 Ubuntu 上,你使用 zip 和 unzip 命令。
首先,检查它们是否已安装。
2.1 检查是否已安装 zip
你可以使用以下命令进行检查:
zip -v
如果出现错误,请安装它:
sudo apt update
sudo apt install zip unzip
常见错误
- 因未安装 unzip 而无法解压
- 忘记使用 sudo 导致“Permission denied”
2.2 使用 zip 压缩文件
压缩单个文件:
zip sample.zip file.txt
结果:
- 创建了
sample.zip - 原始文件未被删除
一次压缩多个文件
zip sample.zip file1.txt file2.txt
2.3 压缩文件夹(重要)
压缩文件夹时,需要使用 -r 选项(递归)。
zip -r sample.zip folder/
如果省略 -r,文件夹内的文件将不会被压缩。
常见的绊脚点
- 忘记使用
-r - 相对路径拼写错误
- 命令顺序错误(输出文件名应放在前面)
正确的顺序:
zip -r output.zip target_folder
2.4 解压 zip 文件
基本命令:
unzip sample.zip
解压到指定文件夹:
unzip sample.zip -d extracted_folder
注意事项
- 如果目标已经存在,系统会提示确认覆盖
- 如果同名文件已存在,可能会被覆盖
- 如果路径中包含空格,请使用引号将其括起来
示例:
unzip "sample file.zip"
2.5 创建受密码保护的 zip
您可以对其进行加密以提升安全性。
zip -e secure.zip file.txt
系统会提示您输入密码。
注意事项
- zip 加密并不十分强大(不适用于高安全性场景)
- 丢失密码 = 难以恢复
2.6 检查大小和压缩率
显示 zip 文件信息:
unzip -l sample.zip
与原始大小进行比较:
ls -lh
为什么压缩率可能偏低
- 图像/视频本身已被压缩
- 文本和日志通常压缩效果较好
3. 使用 tar.gz (tgz) 进行压缩(Linux 标准)
Linux 环境中最常用的格式是 tar.gz。
它在 Ubuntu 上广泛用于源码分发和备份。
tar.gz 是一个两步过程:
- 使用 tar 打包文件(归档)
- 使用 gzip 进行压缩
理解这一机制可以让高级用法更容易上手。
3.1 创建 tar.gz 归档的基本命令
示例:压缩一个文件夹
tar -czvf archive.tar.gz folder/
各选项含义:
c= 创建z= gzip 压缩v= 详细模式(显示处理的项目)f= 文件(指定输出文件名)
单个文件
tar -czvf archive.tar.gz file.txt
多个文件
tar -czvf archive.tar.gz file1.txt file2.txt
3.2 解压 tar.gz 归档
基本命令:
tar -xzvf archive.tar.gz
选项说明:
x= 解压z= gzip 解压缩v= 显示解压的项目f= 指定文件
解压到指定目录
tar -xzvf archive.tar.gz -C target_folder/
-C 用于指定目标目录。
3.3 使用 tar 时的重要注意事项
1. 注意解压后的路径结构
创建时的目录结构在解压时会被保留。
示例:
tar -czvf archive.tar.gz folder/
解压后:
folder/
└─ contents
如果您只想“提取内容”,需要在创建归档时调整路径。
2. 防止意外覆盖
如果文件已存在,可能会被覆盖。
提前检查可使用:
tar -tzvf archive.tar.gz
-t 列出归档内容。
3. 磁盘空间不足
压缩过程中可能会临时占用额外空间。
请提前检查:
df -h
3.4 仅使用 gzip 进行压缩
仅压缩单个文件:
gzip file.txt
结果:
file.txt.gz
解压:
gunzip file.txt.gz
注意
- gzip 会删除原始文件(压缩后会替换它)
- 不适合打包多个文件
3.5 常见错误
- 选项顺序写错
f选项后忘记写文件名-C放错位置- 误以为仅使用 tar 就能减小体积
4. 选择高压缩率格式(bz2 / xz)
如果希望尽可能减小体积,可使用 bzip2 (bz2) 或 xz,它们通常比 gzip 的压缩效果更好。
但压缩率越高,CPU 占用越大,处理时间也会相应变长。
基本指南如下:
- 追求速度 → gzip
- 追求压缩率 → xz
- 兼顾两者 → bzip2
4.1 创建和解压 tar.bz2
压缩方法
tar -cjvf archive.tar.bz2 folder/
选项说明:
c= 创建j= bzip2 压缩v= 详细输出f= 指定输出文件
解压方法
tar -xjvf archive.tar.bz2
4.2 创建和解压 tar.xz
xz 目前是 Linux 上压缩率最高的格式之一。
如何压缩
tar -cJvf archive.tar.xz folder/
注意:J 必须大写(重要)。
如何解压
tar -xJvf archive.tar.xz
4.3 压缩率和处理时间的差异
通用趋势(因环境而异):
- gzip → 快速,标准压缩率
- bzip2 → 比 gzip 更高的压缩率,有点慢
- xz → 非常高的压缩率,最慢
检查 CPU 负载
top
使用 xz 压缩大文件时,CPU 使用率上升是正常的。

4.4 在实际工作中如何选择
用于备份
→ tar.xz (优先考虑更小的尺寸)
用于服务器日志存储
→ tar.gz (平衡)
用于临时传输
→ tar.gz 或 zip
4.5 常见错误和注意事项
- 输入小写的
J并出现错误 - 旧环境中未安装 xz
- 由于 CPU 负载服务器变慢
- 压缩过程中空间不足
如果未安装 xz:
sudo apt install xz-utils
5. 使用 GUI(文件管理器)压缩的方法
如果您不习惯命令行操作,可以使用 Ubuntu 的文件管理器(通常是“Files” = Nautilus)进行压缩。
在桌面环境中,这是最简单的方法。
5.1 通过右键压缩的步骤
步骤
- 选择要压缩的文件或文件夹
- 右键单击
- 选择“压缩”
选择一种格式 wp:list /wp:list
- .zip
- .tar.xz
- .7z (可能根据环境显示) 5. 点击“创建”
压缩文件在同一目录中创建。
5.2 如何解压
步骤
- 右键单击压缩文件
- 选择“在此处解压”或“解压到…”
- 解压完成
5.3 当无法使用 GUI 时检查
在最小安装环境或 Ubuntu Server 中,GUI 不可用。
在这种情况下,必须使用命令行操作。
检查桌面环境:
echo $XDG_CURRENT_DESKTOP
如果没有显示任何内容,您可能没有 GUI 环境。
5.4 使用 GUI 时的注意事项
1. 处理大量文件时可能很慢
进度指示器可能难以理解。
2. 无法指定详细的压缩级别
在 GUI 中无法设置 gzip 级别。
3. 难以看到 CPU 使用率
如果处理过程中 PC 变慢,可能难以理解原因。
4. 不适合服务器使用
在基于 SSH 的环境中不可用。
5.5 常见错误
- 在不了解差异的情况下选择压缩格式
- 不检查目标位置然后“丢失”解压的文件
- 覆盖现有文件
6. 实际工作中实用的压缩技巧
在这里,我们解释实际工作和服务器操作中经常出现的技巧,超出简单的压缩/解压。
这些包括排除日志、仅压缩特定扩展名以及密码保护的 zip——高度实用的操作。
6.1 仅压缩特定文件扩展名
示例:仅压缩日志文件
tar -czvf logs.tar.gz *.log
注意事项
*(通配符) 由 shell 自动展开- 仅针对当前目录中的文件
- 不包括子文件夹
要同时包括子文件夹:
find . -name "*.log" -print0 | tar --null -czvf logs.tar.gz --files-from=-
6.2 压缩时排除特定文件
示例:排除 .log 文件
tar --exclude="*.log" -czvf archive.tar.gz folder/
排除多个模式:
tar --exclude="*.log" --exclude="*.tmp" -czvf archive.tar.gz folder/
常见错误
- 省略引号导致通配符展开
- 打错排除路径
6.3 指定压缩级别 (gzip)
gzip 允许指定压缩级别 (1–9)。
gzip -9 file.txt
- 1 = 快速,低压缩
- 9 = 慢,高压缩
通过 tar 指定时:
tar -czvf archive.tar.gz folder/ --gzip -9
注意:语法可能因环境而异。
6.4 创建受密码保护的 zip
zip -e secure.zip file.txt
强制加密:
zip -P password secure.zip file.txt
注意
-P不推荐使用,因为它会保留在 shell 历史中- zip 加密并不强(不适用于高安全性需求)
6.5 拆分归档(针对大文件)
拆分大归档的方法:
zip -r -s 100m split.zip folder/
它将被拆分为 100MB 的部分。
注意事项
- 提取时需要所有拆分的部分
- 任意部分缺失/损坏,均无法恢复
6.6 比较压缩前后的大小
压缩前:
du -sh folder/
压缩后:
ls -lh archive.tar.gz
压缩率低的常见原因:
- 已经压缩过的数据,如图片/视频
- 加密数据压缩效果差
7. 压缩过程中常见错误及解决方法
在 Ubuntu 上进行压缩/解压时,初学者常会遇到常见错误。
以下列出典型错误及对应的解决方案。
7.1 “command not found” 错误
示例:
zip: command not found
原因
该命令未安装。
解决方案
sudo apt update
sudo apt install zip unzip
针对 tar 相关工具:
sudo apt install xz-utils
7.2 “Permission denied” 权限被拒绝
示例:
tar: folder/file.txt: Cannot open: Permission denied
原因
访问文件或目录的权限不足。
解决方案
检查所有权:
ls -l
使用 sudo:
sudo tar -czvf archive.tar.gz folder/
注意
过度使用 sudo 会增加安全风险。
7.3 “No space left on device” 磁盘空间不足
示例:
No space left on device
原因
磁盘空间不足。
检查方法
df -h
删除不必要的文件:
sudo apt clean
检查磁盘使用情况:
du -sh *
7.4 解压时文件名乱码
当收到在 Windows 上创建的 zip 文件时可能出现此问题。
原因
字符编码差异(UTF-8 与 Shift-JIS 等)。
示例修复
unzip -O cp932 sample.zip
注意:因环境而异。
7.5 意外覆盖
提取时可能会覆盖已有文件。
提前检查:
tar -tzvf archive.tar.gz
针对 zip:
unzip -l sample.zip
7.6 高 CPU 负载
xz 压缩时 CPU 使用率升高是正常现象。
检查:
top
如有需要,可降低压缩级别,或改用 gzip。
8. 小结:Ubuntu 压缩命令选用指南(快速参考)
以下是基于实际使用场景的实用总结,帮助搜索 “ubuntu compression” 的用户快速得出结论。
8.1 按使用场景推荐的格式
| Use case | Recommended format | Reason |
|---|---|---|
| Sharing with Windows | zip | High compatibility |
| Standard use within Linux | tar.gz | Good balance |
| Size is the top priority | tar.xz | High compression |
| Backup storage | tar.gz / tar.xz | Prioritize stability |
| Temporary transfer | tar.gz | Prioritize speed |
8.2 格式对比(速度 vs 压缩率)
| Format | Compression ratio | Speed | CPU load |
|---|---|---|---|
| zip | Normal | Fast | Low |
| tar.gz | Normal | Fast | Low to medium |
| tar.bz2 | High | Slow | Medium |
| tar.xz | Very high | Very slow | High |
注意:压缩率和速度会因数据和环境而异。
8.3 必背的最小命令集
zip 压缩
zip -r archive.zip folder/
tar.gz 压缩
tar -czvf archive.tar.gz folder/
tar.gz 解压
tar -xzvf archive.tar.gz
8.4 给初学者的简明结论
- 如果不确定,使用 tar.gz
- 需要在 Windows 上共享时,使用 zip
- 想要尽可能小的体积,使用 tar.xz
首要记住的命令是 tar -czvf 和 tar -xzvf。
8.5 常见的错误选择
- 误以为 tar 本身可以压缩
- 总是选择 xz,导致处理变慢
- 不清楚 GUI 与 CLI 的区别
- 压缩前未检查磁盘使用情况
