引入
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.打包
-
选项
"c" #创建 "v" #详细信息 "f" #打包后放置的路径
-
命令
[root@shawn ~]# tar cvf ./a_bak.tar a.txt a.txt [root@shawn ~]# ls a_bak.tar a.txt
2.压缩
-
命令
[root@shawn ~]# gzip a_bak.tar [root@shawn ~]# ls a_bak.tar.gz a.txt //会自动加上 ".gz" 后缀
3.上面压缩打包合二为一
-
z 代表 gzip 压缩算法
[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 压缩算法
[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" 打包压缩
-
命令
//第一个参数是压缩包存放的位置, 后面的都是要打包压缩的文件 [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