Linux系统学习第四章:文件压缩、打包与备份(一)压缩与打包:gzip、gcat、bzip2、bzcat、tar

个人认为linux的压缩与windows上的压缩有一点区别,windows上的压缩是将压缩与打包结合在一起的

linux的压缩一般是针对单个文件的,而打包是把几个文件打包成一个文件(打包本身并没有减小文件的大小)

一、文件压缩与解压缩

这里只讲解两种压缩与解压缩的方法gzip和bzip2

(1)gzip

  用法:gzip [-cdtv] 文件名

  说明:生成.gz为后缀的压缩文件

  参数说明:

  -c 将压缩后的数据输出到屏幕上,用于数据流重定向

  -d 用于解压缩

  -t 用于检查文件是否有错误

  -v 显示原文件与压缩后的文件的压缩比例

  看下面这个例子,有一个文件network,它原来的大小为8257B,压缩后的大小为2589B

  压缩完成后,只有network.gz这个文件,原文件network已经被覆盖

 1 [root@localhost php]# ls -l 
 2 总计 32
 3 -rw-r--r-- 1 root root    2 12-05 13:59 a.txt
 4 -rw-r--r-- 1 root root  177 12-05 14:06 hello.php
 5 -rwxr-xr-x 1 root root 8257 12-05 14:08 network
 6 [root@localhost php]# gzip -v network
 7 network:         69.0% -- replaced with network.gz
 8 [root@localhost php]# ls -l
 9 总计 24
10 -rw-r--r-- 1 root root    2 12-05 13:59 a.txt
11 -rw-r--r-- 1 root root  177 12-05 14:06 hello.php
12 -rwxr-xr-x 1 root root 2589 12-05 14:08 network.gz

解压缩:gzip -d 文件名

1 [root@localhost php]# gzip -d network.gz
2 [root@localhost php]# ls -l
3 总计 32
4 -rw-r--r-- 1 root root    2 12-05 13:59 a.txt
5 -rw-r--r-- 1 root root  177 12-05 14:06 hello.php
6 -rwxr-xr-x 1 root root 8257 12-05 14:08 network

(2)zcat 直接读取压缩文件的内容

我们首先看一下未压缩前一个文件的内容

 1 [root@localhost php]# cat hello.php
 2 <?php
 3  echo "hello,world";
 4  $name = 'php';
 5  $array = array('name'=>'张三','sex'=>'');
 6 
 7 
 8 
 9 
10 ?>

然后我们压缩一下这个文件,再看其内容:

 1 [root@localhost php]# gzip -v hello.php
 2 hello.php:       12.2% -- replaced with hello.php.gz
 3 [root@localhost php]# ls
 4 a.txt  hello.php.gz  network
 5 [root@localhost php]# zcat hello.php.gz
 6 <?php
 7  echo "hello,world";
 8  $name = 'php';
 9  $array = array('name'=>'张三','sex'=>'');
10 
11 
12 
13 
14 ?>

(3)bzip2 压缩与解压缩,生成.bz2为后缀的文件

  bzip2 [-cdkv] 文件

  -c 将压缩数据输出到屏幕上,用于数据流重定向

  -d 解压缩

  -k 保留原来的文件

  -v 显示压缩比

  bzip2 -v 文件(不保留原文件)

1 [root@localhost php]# bzip2 -v network
2   network:  2.925:1,  2.735 bits/byte, 65.81% saved, 8257 in, 2823 out.
3 [root@localhost php]# ls
4 a.txt  hello.php  network.bz2

  bzip2 -k 文件(保留原文件)

1 [root@localhost php]# bzip2 -k network
2 [root@localhost php]# ls
3 a.txt  hello.php  network  network.bz2

  bzip2 -d 文件:解压缩

1 [root@localhost php]# bzip2 -d network.bz2
2 [root@localhost php]# ls
3 a.txt  hello.php  network

(4)bzcat:读取由bzip2压缩的文件的内容

 1 [root@localhost php]# bzip2 -v hello.php
 2   hello.php:  0.748:1, 10.694 bits/byte, -33.67% saved, 98 in, 131 out.
 3 [root@localhost php]# ls
 4 a.txt  hello.php.bz2  network.bz2
 5 [root@localhost php]# bzcat hello.php.bz2
 6 <?php
 7  echo "hello,world";
 8  $name = 'php';
 9  $array = array('name'=>'张三','sex'=>'');
10 
11 
12 
13 
14 ?>

二、打包 :tar

  (1)解压缩

  用法:tar -[z|j][cxvf] 文件名/目录名

  参数说明:-z 使用gzip先压缩文件

       -j 使用bzip2先压缩文件

       -c 建立新的打包文件(打包用)

       -x 将打包文件解开

       -v 显示指令执行过程

       -f 指定要操作的文件

  应用:我们一般在网上下载一个软件(linux的),一般都是压缩文件,如我想在linux上安装mysql,首先是下载源码,再解压缩

  下载下来的文件如: mysql-5.5.27.tar.gz

  下面来解压缩:

1 [root@localhost php]# ls
2 a.txt  hello.php  mysql-5.5.27.tar.gz  network
3 root@localhost php]# tar -zxvf mysql-5.5.27.tar.gz 
4 [root@localhost php]# ls
5 a.txt  hello.php  mysql-5.5.27  mysql-5.5.27.tar.gz  network

  (2)压缩文件:

  语法:tar -zcvf 压缩文件名 被压缩的文件

  使用gzip这种技术来压缩文件并打包

1 [root@localhost test]# ls
2 document_root  includes  php
3 [root@localhost test]#tar -zcvf php.gz php
4 [root@localhost test]# ls
5 document_root  includes  php  php.gz

  使用bzip2这种技术来压缩文件或打包

1 [root@localhost test]# ls
2 document_root  includes  php  php.gz
3 [root@localhost test]# tar -jcvf php.tar.bz2 php
4 [root@localhost test]# ls
5 document_root  includes  php  php.gz  php.tar.bz2

 

 

 

posted @ 2012-12-05 15:26  遗梦诗心  阅读(2131)  评论(1编辑  收藏  举报