文件的压缩解压


压缩的好处主要有:
 节省磁盘空间占用率
 节省网络传输带宽消耗
 网络传输更加快捷

常见的压缩包类型

格式 压缩工具
.zip zip压缩文件
.gz gzip压缩工具,只能压缩文件,会删除文件(配合tar)
.bz2 bzip2压缩工具,只能压缩文件,会删除源文件(配合tar)
.tar.gz 先使用tar命令归档打包,然后使用gzip
.tar.bz2 先使用tar命令归档打包,然后使用bzip

gzip

## 压缩命令
语法:gzip 文件名

[root@localhost ~]# gzip file1
[root@moban ~]# ll
-rw-r--r--. 1 root root 4 Apr 18 14:03 1.txt
[root@moban ~]# gzip 1.txt 
[root@moban ~]# ll
-rw-r--r--. 1 root root 30 Apr 18 14:03 1.txt.gz

[root@moban ~]# echo 1234 | gzip > 2.txt    -------将 1234 写入2.txt这个gz压缩文件内
[root@moban ~]# cat 2.txt                                                                   i¹ f3426󿀡}
[root@moban ~]# zcat 2.txt 
1234

## 解压
-d 解压gz文件
[root@moban ~]# gzip -d 1.txt.gz 
[root@moban ~]# ll
total 4
-rw-r--r--. 1 root root 4 Apr 18 14:03 1.txt

## 查看文件类型
file--
[root@moban ~]# file 2.txt    ------ 不要被表象的结尾所迷惑
2.txt: gzip compressed data, from Unix, last modified: Thu Apr 18 14:10:49 2024

## 特点
1.压缩包后缀.gz
2.压缩后源文件不存在
3.压缩率很高
4.缺陷就是,不能压缩目录,不能压缩多个文件
5.解压后,压缩包不在了,源文件出来了
6.可以直接使用命令查看压缩包中文件的内容

zip

需要手动安装
[root@moban ~]# yum install -y zip       
[root@moban ~]# yum install -y unzip
## 语法:
zip 包名 文件名...

## 压缩文件
可以使用绝对路径
[root@moban a]# zip /tmp/aaaaa.zip /root/2.xtx

[root@moban ~]# zip 1.txt.zip 1.txt 
  adding: 1.txt (stored 0%)

[root@moban ~]# zip 1.txt.zip 3.txt 2.txt  ---- 可以同时压缩多个  会向里面追加
  adding: 3.txt (stored 0%)
  adding: 2.txt (stored 0%)
  
## 压缩目录
[root@moban ~]# mkdir -p ./aaa/bbb/ccc
[root@moban tmp]# unzip /root/aaa.zip   ------ 没递归压缩
[root@moban tmp]# ll aaa
total 0
[root@moban ~]# zip -r aaa1.zip aaa    -----r启用递归
  adding: aaa/ (stored 0%)
  adding: aaa/bbb/ (stored 0%)
  adding: aaa/bbb/ccc/ (stored 0%)

## 查看zip压缩文件内有什么   unzip -l

[root@moban ~]# unzip -l aaa1.zip 
Archive:  aaa1.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  04-18-2024 14:22   aaa/
        0  04-18-2024 14:22   aaa/bbb/
        0  04-18-2024 14:22   aaa/bbb/ccc/
---------                     -------

## 解压     --------------------   你在那个目录就解压到当前目录
[root@moban tmp]# cd /tmp
[root@moban tmp]# unzip /root/1.txt.zip 
Archive:  /root/1.txt.zip
 extracting: 1.txt                   
 extracting: 3.txt                   
 extracting: 2.txt                   
[root@moban tmp]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 18 14:15 1.txt
-rw-r--r--. 1 root root 0 Apr 18 14:15 2.txt
-rw-r--r--. 1 root root 0 Apr 18 14:15 3.txt

1.压缩包后缀.zip
2.压缩后源文件存在
3.压缩率很高
4.默认情况下不能压缩目录,能压缩多个文件,压缩目录需要选项
5.压缩时可以指定压缩包的路径
6.解压后,压缩包还在,源文件出来了
7.不可以直接使用命令查看压缩包中文件的内容

tar

选项(不需要带-) 作用
c 创建归档文件
f 指定归档文件的包名 (不指定的话会给个字母加乱码)
z 使用gzip来压缩归档的文件,xf解压tar.gz包
x 对归档文件进行解压
v 显示过程
t 查看压缩包中的所有文件和目录
x 可以排除多个不想打包的文件,指定文件名
h 打包软连接的源文件
J 使用xz进行压缩归档的文件
p 使用绝对路径
j 使用bzip2压缩归档后的文件,xf解压tar.bz2包
--exclude 排除不想要的文件
## tar命令本身只是一个归档命令

## 语法:
tar [选项] 包名 文件...

## 归档
[root@moban ~]# tar -cf xtx.tar 1.xtx 2.xtx 3.xtx 4.xtx 5.xtx 
[root@moban ~]# ll
total 4
-rw-r--r--. 1 root root   0 Apr 18 14:39 1.xtx
-rw-r--r--. 1 root root   0 Apr 18 14:39 2.xtx
-rw-r--r--. 1 root root   0 Apr 18 14:39 3.xtx
-rw-r--r--. 1 root root   0 Apr 18 14:39 4.xtx
-rw-r--r--. 1 root root   0 Apr 18 14:39 5.xtx
-rw-r--r--. 1 root root 132 Apr 18 14:40 xtx.tar
    	# 可以指定路径进行归档
[root@moban ~]# tar -cf /tmp/aaaa.agz  1.xtx 2.xtx 3.xtx 4.xtx 5.xtx 
[root@moban ~]# ll /tmp
total 16
-rw-r--r--. 1 root root     0 Apr 18 14:15 1.txt
-rw-r--r--. 1 root root     0 Apr 18 14:15 2.txt
-rw-r--r--. 1 root root     0 Apr 18 14:15 3.txt
drwxr-xr-x. 2 root root     6 Apr 18 14:22 aaa
-rw-r--r--. 1 root root 10240 Apr 18 14:49 aaaa.agz
-rw-r--r--. 1 root root   170 Apr 18 14:43 aaaaa.zip
## 压缩目录  -----------    -v可以显示过程
[root@moban ~]# tar -zcf a.agz a/

## 解压    再最后加上-C 指定解压目录
[root@moban ~]# tar xf a.agz
[root@moban ~]# tar xf a.agz -C /tmp

## 打包时排除不想要的文件
[root@localhost tmp]# tar zcf root2.tgz --exclude=file6 --exclude=file7 /root