作者:jicanmeng
时间:2016年06月07日
gzip用于压缩和解压文件,命令格式如下:
gzip [-cdt] file
-c
: Compress or decompress to standard output,并不会删除原来的文件。常常和输出重定向一起使用。-d
: 解压缩某个文件。-t
: 查看压缩文件是否损坏。-v
: 显示压缩比等信息。单独使用时,会压缩文件,并且显示压缩比信息。-l
: 查看某个压缩文件的压缩比信息。默认情况下,使用gzip压缩文件后,原来的文件会删除。
示例如下:
[jicanmeng@andy tmp]$ ls
a.txt
[jicanmeng@andy tmp]$ gzip -v a.txt
a.txt: 20.4% -- replaced with a.txt.gz
[jicanmeng@andy tmp]$ ls
a.txt.gz
[jicanmeng@andy tmp]$ gzip -l a.txt.gz
compressed uncompressed ratio uncompressed_name
114 103 20.4% a.txt
[jicanmeng@andy tmp]$ file a.txt.gz
a.txt.gz: gzip compressed data, was "a.txt", from Unix, last modified: Tue Jun 7 22:34:18 2016
[jicanmeng@andy tmp]$ gzip -d a.txt.gz
[jicanmeng@andy tmp]$ ls
a.txt
[jicanmeng@andy tmp]$
zcat命令用于查看gzip格式的压缩文件的内容,命令格式如下:
zcat file
示例如下:
[jicanmeng@andy tmp]$ zcat a.txt.gz
http://stackoverflow.com/questions/12779026/unix-v6-source-code
https://pdos.csail.mit.edu/6.828/2012/
[jicanmeng@andy tmp]$ gzip -d a.txt.gz
[jicanmeng@andy tmp]$ zcat a.txt
gzip: a.txt: not in gzip format
[jicanmeng@andy tmp]$
bzip2用于压缩和解压文件,命令格式如下:
bzip2 [-cdzkv] file
-c
: Compress or decompress to standard output,并不会删除原来的文件。常常和输出重定向一起使用。-d
: 解压缩某个文件-z
: 压缩某个文件。(如果不指定-d,都会进行压缩,感觉这个选项没有什么用。)-k
: Keep (don't delete) input files during compression or decompression.-v
: 显示压缩比等信息。单独使用时,会压缩文件,并且显示压缩比信息。-t
: 检查压缩文件是否损坏。默认情况下,压缩文件后会删除原来的文件,-k会指定保留原来的文件。
单独指定-v或-c选项时,都会压缩文件。
示例如下:
[jicanmeng@andy tmp]$ ls
a.txt
[jicanmeng@andy tmp]$ bzip2 -vk a.txt
a.txt: 0.811:1, 9.864 bits/byte, -23.30% saved, 103 in, 127 out.
[jicanmeng@andy tmp]$ ls
a.txt a.txt.bz2
[jicanmeng@andy tmp]$ file a.txt.bz2
a.txt.bz2: bzip2 compressed data, block size = 900k
[jicanmeng@andy tmp]$
bzcat命令用于查看bzip2格式的压缩文件的内容,命令格式如下:
bzcat file
示例如下:
[jicanmeng@andy tmp]$ bzcat a.txt.bz2
http://stackoverflow.com/questions/12779026/unix-v6-source-code
https://pdos.csail.mit.edu/6.828/2012/
[jicanmeng@andy tmp]$ bzcat a.txt.bz2
[jicanmeng@andy tmp]$ zcat a.txt
gzip: a.txt: not in gzip format
[jicanmeng@andy tmp]$
gzip和bzip2命令只能压缩文件,不能压缩目录。linux中常用的方法是首先将目录用tar命令打包为一个后缀名为.tar的文件,再使用gzip或bzip2命令进行压缩为一个后缀名为.tar.gz或.tar.bz2的文件。
压缩的命令格式如下:
tar -zcv -f /root/etc.tar.gz /etc
tar -jcv -f /root/etc.tar.bz2 /etc
解压缩的命令格式如下:
tar -zxv -f /root/etc.tar.gz
tar -jxv -f /root/etc.tar.bz2
查看压缩包中有什么文件的命令格式如下:
tar -ztv -f /root/etc.tar.gz
tar -jtv -f /root/etc.tar.bz2
-z
: 使用gzip进行压缩/解压缩。-j
: 使用bzip2进行压缩/解压缩。-c
: 打包。-x
: 解包。-v
: 在压缩/解压缩的过程中,将正在处理的档名显示出来!-f
: 后面要立刻接要被处理的档名!建议 -f 单独写一个选项啰!-t
: 查看打包档案中有哪些档名!另外,还有几个比较重要的选项:
-p
: 保留备份资料的原本权限和属性,常用于备份重要的设定档。-P
: 保留绝对路径,也就是允许备份资料中包含根目录(可以通过-t选项查看)-C
: 这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。示例如下:
[root@andy tmp]# tar -zcv -f /root/etc.tar.gz /etc/
tar: Removing leading `/' from member names
/etc/
/etc/drirc
/etc/idmapd.conf
/etc/auto.net
...
[root@andy tmp]# tar -ztv -f /root/etc.tar.gz
drwxr-xr-x root/root 0 2016-06-07 22:05 etc/
-rw-r--r-- root/root 3095 2014-10-17 21:20 etc/drirc
-rw-r--r-- root/root 3581 2013-02-22 09:53 etc/idmapd.conf
-rwxr-xr-x root/root 1260 2013-11-23 22:07 etc/auto.net
drwxr-xr-x root/root 0 2014-04-17 07:36 etc/gtk-2.0/
...
[root@andy tmp]# tar -zxv -f etc.tar.gz -C /home/
...
[root@andy tmp]# ll /home/
total 16
drwxr-xr-x. 115 root root 12288 Jun 7 22:05 etc
drwx------. 35 jicanmeng jicanmeng 4096 Jun 7 23:29 jicanmeng
[root@andy tmp]#
[root@andy tmp]# tar -zcvP -f /root/etc.tar.gz /etc/
/etc/
/etc/drirc
/etc/idmapd.conf
/etc/auto.net
...
[root@andy tmp]# tar -ztv -f /root/etc.tar.gz
drwxr-xr-x root/root 0 2016-06-07 22:05 /etc/
-rw-r--r-- root/root 3095 2014-10-17 21:20 /etc/drirc
-rw-r--r-- root/root 3581 2013-02-22 09:53 /etc/idmapd.conf
-rwxr-xr-x root/root 1260 2013-11-23 22:07 /etc/auto.net
drwxr-xr-x root/root 0 2014-04-17 07:36 /etc/gtk-2.0/
...
[root@andy tmp]#
通过上面的例子,可以看到-P选项的作用。如果指定了-P选项,那么解压的文件的路径就是使用-t选项看到的,在/etc/目录下,这会覆盖/etc/目录下的文件。所以,一般情况下,我们都不会添加-P选项。
xz和gzip、bzip2一样,也是一种压缩算法。和tar一起使用时,z表示gzip,j表示bzip2,J表示xz。使用tar和xz压缩的文件的后缀名为.tar.xz。