共计 1521 个字符,预计需要花费 4 分钟才能阅读完成。
引入
1. 什么是打包压缩
- 打包 : 指的是将多个文件和目录合并为一个特殊文件
- 压缩 : 将该特殊文件进行压缩, 得到一个压缩包
2. 为什么使用打包压缩
- 减少占用的空间
- 加快网络的传输
3.Windows 与 Linux 压缩包的不同
- Windows : zip, rar(Linux 不支持 rar)
- Linux : zip, tar.gz, tar.bz2.gz
ps: 如果想要两个系统都可以解压, 那就选择 zip 的压缩包
ps2: 压缩包后缀不重要, 但带上更便于识别
4.Linux 下常见的压缩包类型
格式 | 压缩工具 |
---|---|
.zip | zip 压缩工具 |
.gz | gzip 压缩工具 |
.bz2 | bzip2 压缩工具 |
.tar.gz | 先使用 tar 命令归档打包, 然后使用 gzip 压缩 |
.tar.bz2 | 先使用 tar 命令归档打包, 然后使用 bzip 压缩 |
一. 打包压缩
1. 打包
- 选项
js
"c" #创建
"v" #详细信息
"f" #打包后放置的路径
- 命令
js
[root@shawn ~]# tar cvf ./a_bak.tar a.txt
a.txt
[root@shawn ~]# ls
a_bak.tar a.txt
2. 压缩
- 命令
js
[root@shawn ~]# gzip a_bak.tar
[root@shawn ~]# ls
a_bak.tar.gz a.txt // 会自动加上 ".gz" 后缀
3. 上面压缩打包合二为一
- z 代表 gzip 压缩算法
js
[root@shawn ~]# tar cvfz a1_bak.tar.gz ./a.txt
./a.txt
[root@shawn ~]# ls
a1_bak.tar.gz a_bak.tar.gz a.txt
- j 代表 bzip2 压缩算法
js
[root@shawn ~]# tar cvfj a2_bak.tar.bz2 ./a.txt
./a.txt
[root@shawn ~]# ls
a1_bak.tar.gz a2_bak.tar.bz2 a_bak.tar.gz a.txt
4."zip" 打包压缩
- 命令
js
// 第一个参数是压缩包存放的位置, 后面的都是要打包压缩的文件
[root@shawn ~]# zip /root/ab.zip a.txt b.txt
adding: a.txt (deflated 98%)
adding: b.txt (stored 0%)
[root@shawn ~]# ls
ab.zip a.txt b.txt
二. 解压缩
1. 针对 xx.tar.gz
和 xx.tar.bz2
压缩算法
// 无需指定算法, "tar" 会自动判断
🐼语法: tar xvf [压缩包] -C [解压到的目录]
🐼示例
[root@shawn ~]# ls
a_bak.tar.gz ab.zip a.txt b.txt song
[root@shawn ~]# tar xvf a_bak.tar.gz -C ./song
a.txt
[root@shawn ~]# ls song
a.txt
2. 针对 xx.zip
🐼语法: unzip [xxx.zip]
🐼示例
[root@shawn ~]# ls
a_bak.tar.gz ab.zip song
[root@shawn ~]# unzip ab.zip
Archive: ab.zip
inflating: a.txt
extracting: b.txt
[root@shawn ~]# ls
a_bak.tar.gz ab.zip a.txt b.txt song
三. 拓展知识
1. 打包压缩应用
- 打包压缩一般用于备份文件
- 文件的名字必须见名知意
- 可以带上事件, 主机名之类的
2. 时间命令date
- 常用选项
3. 使用反引号 ``
加入时间
[root@shawn ~]# ls
a.txt b.txt
[root@shawn ~]# tar cvfz `date +%F`_bak.tar.gz /root
[root@shawn ~]# ls
2020-10-27_bak.tar.gz a.txt b.txt