CodeGym /课程 /Docker SELF /文件归档和压缩:命令 `tar`, `gzip`, `zip`

文件归档和压缩:命令 `tar`, `gzip`, `zip`

Docker SELF
第 6 级 , 课程 4
可用

1. 归档和压缩的概念

什么是归档?为什么需要它?

想象一下一个装满书籍的柜子。为了节省空间,你可以把书放进一个箱子里(归档),然后用绳子捆紧(压缩)。在计算机世界里,归档是将多个文件合并成一个容器(归档文件)的过程,而压缩是减小其尺寸的过程。

那么为什么需要这样做呢?这里有一些例子:

  • 数据存储:将文件打包到一个归档中,你可以轻松地将它们作为一个文件移动或复制。
  • 数据传输:通过压缩,数据占用的空间更小,因此通过网络传输更快。
  • 备份:归档可以保护数据,并简化其恢复。

顺便问一下,你有没有试过通过邮件传输 1000 个文件?没有归档的话,那简直就是折磨!


2. 命令 tar: 创建与操作归档文件

什么是 tar?

tar 是一个 Linux 下用于归档文件的工具。tar 本身不压缩文件,而是将它们合并为一个文件。如果你想压缩文件,可以结合压缩工具使用(gzipbzip2 等)。

基本语法

tar [选项] <归档文件> <文件/文件夹>

主要选项

  • -c: 创建一个新的归档文件。
  • -v: 显示操作的详细信息(会告诉你添加了哪些文件)。
  • -f: 指定归档文件名。
  • -x: 从归档文件中提取文件。
  • -t: 显示归档文件的内容。

使用示例

1. 创建归档文件

tar -cvf archive.tar file1.txt file2.txt
  • 创建一个包含两个文件 file1.txtfile2.txt 的归档文件 archive.tar
  • -c: 创建新的归档文件。
  • -v: 将整个文件添加过程显示到终端。
  • -f: 指定归档文件名为 archive.tar

2. 归档文件夹

tar -cvf project.tar /home/user/project
  • 创建一个包含整个文件夹 /home/user/project 的归档文件 project.tar

3. 提取归档文件

tar -xvf archive.tar
  • 将归档文件 archive.tar 解压到当前目录。

4. 查看归档文件内容

tar -tvf archive.tar
  • 显示归档文件中包含的文件和文件夹列表。

3. 使用 gzip 压缩

gzip 是做什么的?

如果 tar 是盒子,那么 gzip 就是真空袋,它可以让盒子更小。gzip 通过压缩算法缩小数据,因此是节省空间的理想工具。

通用语法

gzip [选项] <文件>

使用示例

1. 压缩文件

gzip file1.txt
  • 运行命令后,文件 file1.txt 会变成 file1.txt.gz

2. 解压文件

gunzip file1.txt.gz
  • 恢复原始文件 file1.txt

3. 通过 targzip 归档并压缩

tar -czvf archive.tar.gz file1.txt file2.txt
  • 创建了一个归档文件 archive.tar.gz,它合并并压缩了文件 file1.txtfile2.txt

4. 提取压缩归档

tar -xzvf archive.tar.gz
  • 解压并提取归档 archive.tar.gz 的内容。

4. 使用工具 zip 创建压缩归档文件

tar 的区别是什么?

tar 不同,zip 会直接创建一个压缩归档文件,默认情况下可以在 Windows 和其他系统中使用。

基本语法

zip [选项] <归档文件> <文件/文件夹>

使用示例

1. 创建 zip 归档文件

zip archive.zip file1.txt file2.txt
  • 创建一个归档文件 archive.zip,包含文件 file1.txtfile2.txt

2. 归档文件夹

zip -r project.zip /home/user/project
  • 创建一个归档文件 project.zip,包含整个文件夹 /home/user/project
  • -r: 递归添加文件和文件夹。

3. 解压 zip 归档文件

unzip archive.zip
  • 提取归档文件 archive.zip 的内容。

5. targzipzip之间的区别

工具 归档 压缩 方法 主要应用
tar 文件打包 将文件合并为未压缩的存档
gzip 压缩 减小单个文件或存档的大小
zip 一体化 创建可移植存档

6. 实践任务

  1. 创建文件夹 /home/user/documents 内容的归档文件 backup.tar
  2. 使用 gzip 压缩归档文件,生成 backup.tar.gz
  3. 将归档文件解压到另一个目录,例如 /tmp/backup
  4. 从文件 doc1.txtdoc2.txt 创建 zip 归档 docs.zip
  5. 尝试使用命令 unzip 提取 docs.zip 的内容。

7. 常见错误和特点

1. 错误 "Permission denied(权限被拒绝)" 如果你尝试归档那些访问受限的文件,你会收到错误信息。用管理员权限运行命令:sudo

2. 选项搞混了? tar 的选项有时候会有点混乱。记得顺序很重要:比如,先指定操作 -c-x,然后再添加其他选项。

3. 压缩档案打不开 如果你不小心对已经压缩的文件再次添加了压缩(比如 gzip archive.tar.gz),别慌。只要解压两次就行了。

4. 归档太大 在使用 zip 命令时,可以排除临时文件或缓存以减小归档的大小:zip -r archive.zip folder -x "*.tmp"

5. 兼容性问题 如果需要把文件发给 Windows 用户,最好用 zip,因为它在这个系统中支持更好。

就这样,我们学会了在 Linux 系统中进行数据归档和压缩。这些工具能帮助你更轻松地处理大量数据、传输数据并保护数据不丢失。继续学习下一课吧,知识只会越来越多!🎉

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION