您的位置:首页 > 运维架构 > Linux

linux基础之压缩与归档

2016-06-15 12:12 555 查看

常见的压缩文件有哪些?

*.Z             compress程序压缩的文件
*.gz            gzip程序压缩的文件
*.bz2           bzip2程序压缩的文件
*.tar           tar程序归档的数据,并没有压缩过
*.tar.gz        tar程序归档后,再经过gzip压缩
*.tar.bz2       tar程序归档后,再经过bzip2压缩
*.zip           zip既可以归档又可以压缩


compress已经不再流行,这里不再多说

gzip,zcat

gzip可以说是应用最广泛的压缩命令,可以解压缩compress,zip,gzip等软件所压缩的文件。默认情况下,不管是压缩还是解压缩,gzip都会删除原文件,gzip不能压缩目录(gzip压缩目录是将目录中的所有文件分别压缩),不能将多文件压缩成一个文件

[root@jiuyou test]# gzip [-cdtv#] filename
-c:将压缩的内容输出到屏幕上,将不会压缩原文件
-d:解压缩,也可以直接使用gunzip命令解压缩
-t:用来检验压缩文件的一致性,检查文件是否有错误
-v:显示原文件/压缩文件的压缩比等信息
-#:压缩等级,-1最快,压缩比最低,-9相反


例:压缩一个文件

gzip filename

[root@jiuyou test]# ll
total 128
-rw-r--r-- 1 root root 77908 Jun 15 09:56 test.txt
-rwxr--r-- 1 root root   369 Jun 15 09:56 usertest.sh

[root@jiuyou test]# gzip usertest.sh
[root@jiuyou test]# ll
total 128
-rw-r--r-- 1 root root 77908 Jun 15 09:56 test.txt
-rwxr--r-- 1 root root   254 Jun 15 09:56 usertest.sh.gz

[root@jiuyou test]#


可以发现,原文件被删除了,但是大多数时候我们是不希望原文件被删除的,这时候就可以利用-c选项了

[root@jiuyou test]# ll
total 128
-rw-r--r-- 1 root root 77908 Jun 15 09:56 test.txt
-rwxr--r-- 1 root root   254 Jun 15 09:56 usertest.sh.gz
[root@jiuyou test]# gzip -c test.txt > test.txt.gz
[root@jiuyou test]# ll
total 148
-rw-r--r-- 1 root root 77908 Jun 15 09:56 test.txt
-rw-r--r-- 1 root root 17836 Jun 15 10:32 test.txt.gz
-rwxr--r-- 1 root root   254 Jun 15 09:56 usertest.sh.gz


将压缩的内容重定向到其他文件,这样压缩就不会删除原文件了

解压缩

两种方式都可以

[root@jiuyou test]# gzip -d usertest.sh.gz
[root@jiuyou test]# gunzip test.txt.gz


不解压就查看压缩文件的内容(文本文件)

zcat

将压缩文件的内容输出到屏幕上

[root@jiuyou test]# zcat usertest.sh.gz


bzip2,bzcat

bzip2比gzip还好用,可以说是用来替代gzip的,所以用法基本相同

[root@jiuyou test]# bzip2 [-cdkzv#] filename
-c:同gzip
-d:解压缩
-k:保留原文件
-z:压缩
-v:同gzip
-#:同gzip


具体用法几乎和gzip一样,不再多说了

归档命令 tar

将多个文件组合成一个文件,而不是压缩,这种行为叫做 归档 (打包)

tar就是一种归档命令,而且tar命令还支持gzip, bzip2,在归档的同时还可以进行压缩

[root@jiuyou test]# tar [-j|-z] [cv] [-f newfilename] filename...       归档与压缩
[root@jiuyou test]# tar [-j|-z] [tv] [-f filename]          查看归档文件下都归档了哪些文件
[root@jiuyou test]# tar [-j|-z] [zv] [-f filename] [-C 目录]          解压缩
-c:新建归档文件(压缩)
-t:查看归档文件的列表
-x:展开归档文件(解压缩)
-j:通过bzip2压缩/解压缩
-z:通过gzip压缩/解压缩
-v:在执行过程中将正在处理的文件名显示出来
-f filename: 后面接要被处理的文件名, 建议-f单独写一个参数
-C 目录:用在解压缩时,要在特定目录解压缩,就用-C

-p:保留文件的原本权限与属性,常用语备份重要的配置文件
-P:保留绝对路径,即允许备份文件中含有目录存在


一般多个命令组合起来使用

压缩:   tar -zcv -f filename.tar.gz    要被压缩的文件或者目录名称
查看:   tar -ztv -f filename.tar.gz
解压缩: tar -zxv -f filename.tar.gz    欲解压缩的目录


例:用tar命令备份/etc目录

[root@jiuyou ~]# tar -zcv -f etc.tar.gz /etc
/etc/rc.d/init.d/crond
/etc/rc.d/init.d/mysql
/etc/rc.d/init.d/sandbox
...........
/etc/rc.d/init.d/functions
/etc/rc.d/init.d/ntpdate
/etc/rc.d/init.d/halt
/etc/rc.d/init.d/sysstat
[root@jiuyou ~]# ll
-rw-r--r--  1 root root  24614262 Jun 15 11:50 etc.tar.gz


由于用了-v,所以被压缩归档的文件都会列出来显示到屏幕上,

例:查看etc.tar.gz中都归档压缩了哪些文件

[root@jiuyou ~]# tar -ztv -f etc.tar.gz
drwxr-xr-x root/root         0 2016-06-14 21:37 etc/
drwxr-xr-x root/root         0 2014-08-11 16:27 etc/pm/
drwxr-xr-x root/root         0 2011-09-23 19:47 etc/pm/power.d/
drwxr-xr-x root/root         0 2011-09-23 19:47 etc/pm/sleep.d/
drwxr-xr-x root/root         0 2011-09-23 19:47 etc/pm/config.d/
-rw-r--r-- root/root       979 2014-08-11 16:39 etc/yum.conf
drwxr-xr-x root/root         0 2014-08-11 16:41 etc/openldap/
................


例:将etc.tar.gz 解压缩到 /tmp目录下

[root@jiuyou etc]# tar -zxv -f etc.tar.gz -C /tmp
..............
etc/setuptool.d/99mouseconfig
etc/setuptool.d/99sndconfig
etc/setuptool.d/98netconfig
etc/setuptool.d/98system-config-keyboard
[root@jiuyou ~]# cd /tmp
[root@jiuyou tmp]# ls
Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)>  neww.pdf.1  neww.pdf.4  qtsingleapp-aegisG-46d2
etc                                                 neww.pdf.2  neww.pdf.5  qtsingleapp-aegiss-a5d2
mysql.sock                                          neww.pdf.3  neww.pdf.6  test
[root@jiuyou tmp]#


这样就完成了解压缩了

例:将归档压缩中的某一个文件解压出来,而不是全部

[root@jiuyou ~]# tar -zxv -f etc.tar.gz etc/shadow
etc/shadow
[root@jiuyou ~]# ll etc
total 4
---------- 1 root root 1075 Jun 11 17:10 shadow
[root@jiuyou ~]#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  压缩 linux gzip