文章目录
在linux中可以识别的常见压缩格式有挺多,比如 .zip .gz .bz2 .tar .tar.gz .tar.bz2等。
linux 不以文件扩展名识别文件,这些后缀都是为了方便管理员识别的。
1、.zip格式
.zip格式在win中比较常用,linux也可以正确识别,可以方便的和windows系统通用压缩文件。
1.1 .zip格式压缩命令
所在路径:/usr/bin/zip
命令格式
zip [选项] 压缩包名 源文件或源目录
选项-r 压缩目录
[root@akun ~]# ls
123 abc anaconda-ks.cfg asd install.log install.log.syslog qwe wsx
[root@akun ~]# zip test.zip abc wsx #命令的目标参数是可以多个的
adding: abc (stored 0%) #这个文件是空的所以压缩了0%
adding: wsx (deflated 20%) #这个文件压缩了20%
[root@akun ~]# ls
123 abc anaconda-ks.cfg asd install.log install.log.syslog qwe test.zip wsx
#这里就有了test.zip这个文件了,系统中是有颜色的,这里不显示
1.2 .zip格式解压缩
所在路径:/usr/bin/unzip
命令格式
unzip [选项] 压缩包名
选项-d :指定解压缩地址
[root@akun tmp]# unzip d1ik.zip
Archive: d1ik.zip
inflating: wsx
creating: 123/
[root@akun 12]# unzip -d ./aaa/ 2.zip
Archive: 2.zip
inflating: ./aaa/abc
inflating: ./aaa/qwe
inflating: ./aaa/wsx
2、.gz格式(不打包)
所在路径:/bin/gzip
命令格式
gzip [选项] 源文件
选项
-c :将压缩数据输出到标准输出中(输出到屏幕可以看到),可以用于保留源文件
-d :解压缩
-r :压缩目录,这个命令不会打包,-r目录 会把目录下文件分别压缩
[root@akun 12]# ls
qwe
[root@akun 12]# gzip qwe
[root@akun 12]# ls
qwe.gz
#默认源文件会自动删除
[root@akun 12]# ls
qwe
[root@akun 12]# gzip -c qwe
??qwe%?
@
?~)
??I3,???V1?7?h2?;
[root@akun 12]# ls
qwe
[root@akun 12]# gzip -c qwe > qwe.gz
#使用-c选项,但不让压缩数据输出到屏幕上,而是重定向到压缩文件中
这样可以在压缩文件的同时不删除源文件
重定向> 表示覆盖,>>表示追加
解压命令:
gunzip 压缩包名
等同于 gzip -d 压缩包名
[root@akun mnt]# gzip 123 abc
[root@akun mnt]# ls
12 123.gz abc.gz qwe wer
[root@akun mnt]# gunzip 123.gz
[root@akun mnt]# gzip -d abc.gz
[root@akun mnt]# ls
12 123 abc qwe wer
3、.bz2格式(不能压目录)
.bz2 格式是linux的另一种压缩格式,理论上讲,.bz2算法更先进,压缩比更好,而.gz相对来讲压缩时间更快
.bz2格式的压缩命令是bzip2
所在路径:/usr/bin/bzip2
命令格式
bzip2 [选项] 源文件
选项
-d :解压缩 (同bunzip2 压缩包名)
-k :压缩时,保留原文件
-v :显示压缩详细信息
[root@akun mnt]# ls
12 123 abc qwe wer
[root@akun mnt]# bzip2 abc
[root@akun mnt]# ls
12 123 abc.bz2 qwe wer
[root@akun mnt]# bzip2 -k qwe
[root@akun mnt]# ls
12 123 abc.bz2 qwe qwe.bz2 wer
[root@akun mnt]# bzip2 -d abc.bz2
[root@akun mnt]# bunzip2 qwe.bz2
[root@akun mnt]# ls
12 123 abc qwe wer
4、 .tar格式(打包不压缩)
.tar格式打包和解打包都是使用tar命令,区别只是选项不同。
命令路径:/bin/tar
命令格式
tar [选项] [-f 压缩包名] 源文件或目录
选项
-c :打包
-f :指定压缩包的名称。
-v :显示打包过程
-x :解打包
-t :测试。解打包的时候不解,只是看看包中文件
-C:指定解打包位置
[root@akun ~]# tar -cvf 123.tar 123 打包
123/
123/qwe/
123/qwe/qwed/
[root@akun ~]# tar -xvf 123.tar 解打包
123/
123/qwe/
123/qwe/qwed/
那如果要打包压缩就要执行两个命令:
[root@akun ~]# tar -cvf 123.tar 123 打包
123/
123/qwe/
123/qwe/qwed/
[root@akun ~]# gzip 123.tar 压缩
[root@akun ~]# ls
123.tar.gz
(解压也是要先解压再解打包)
为了方便,不这样,有.tar.gz和.tar.bz2的格式
5、.tar.gz和.tar.bz2格式
这种格式是可以一次解压的,就不用想上边那样执行两次命令了
命令格式是一样的
主要解决了gzip ,bzip2命令不能打包的问题
多两个选项用来识别压缩包的格式
选项 | 作用 |
---|---|
-z | 压缩和解压缩.tar.gz格式的压缩包 |
-j | 压缩和解压缩.tar.bz2格式的压缩包 |
以.tar.bz2为例:
[root@akun ~]# tar -jcvf test.tar.bz2 abc 123 qwe #把文件abc、qwe和目录123压缩为test.tar.bz2文件(这里目标也可以多个)
abc
123/
123/qwe/
123/qwe/qwed/
qwe
[root@akun ~]# tar -jxvf test.tar.bz2
abc
123/
123/qwe/
123/qwe/qwed/
qwe
#解压
-t选项,测试(只看不解压):
-C选项,指定解压位置(这个选项必须放在压缩包后边)
[root@akun ~]# tar -jtvf test.tar.bz2
-rw-r--r-- root/root 113 2020-06-15 06:45 abc
drwxr-xr-x root/root 0 2020-05-11 03:34 123/
drwxr-xr-x root/root 0 2020-05-11 03:34 123/qwe/
drwxr-xr-x root/root 0 2020-05-11 03:34 123/qwe/qwed/
-rw-r--r-- root/root 59 2020-06-15 06:41 qwe
[root@akun ~]# tar -jxvf test.tar.bz2 -C /mnt/
abc
123/
123/qwe/
123/qwe/qwed/
qwe
[root@akun ~]# ls /mnt/
123 abc qwe
如果想解压压缩包中的某个文件,可以在命令后加上这个文件名
[root@akun ~]# tar -jxvf test.tar.bz2 -C /tmp/ abc
abc
[root@akun ~]# ls /tmp/
abc