MyLinux Note - - - 9th day

文档的压缩与打包

一、gzip与gunzip压缩

      命令格式

      压缩  :  gzip [选项] [文件名。。。]

      解压缩  : gunzip [选项] [文件名。。。]

      

      常用命令选项

      -d :对压缩文件进行解压缩

      -l  :对每个压缩文档,显示下列信息:压缩文件的大小、未压缩文件的大小、压缩比和未压缩文件的名字

      -r :递归对指定目录下各个级子目录里的文件进行压缩或解压缩

      -t :检查压缩文件的完整性

      -v :对每一个进行压缩和解压缩的文件,显示文件名和压缩比

      -n :用指定的数字调整压缩的速度,-1或--fast表示最快压缩(低压缩比);-9或--best表示最慢压缩比(高压缩),系统默认值为6

      

       实例:

       1、压缩目录下的所有文件

[root@mylinux bbb]# ls -R
.:
1.txt  2.txt  3.txt  ccc
./ccc:
1.txt  2.txt  3.txt
[root@mylinux bbb]# gzip -r *
[root@mylinux bbb]# ls -R
.:
1.txt.gz  2.txt.gz  3.txt.gz  ccc
./ccc:
1.txt.gz  2.txt.gz  3.txt.gz

        2、压缩部分文件

[root@mylinux bbb]# gzip 2.txt 3.txt
[root@mylinux bbb]# ls
1.txt  2.txt.gz  3.txt.gz  ccc

        3、查看压缩文件的情况

[root@mylinux bbb]# gzip -rl *
         compressed        uncompressed  ratio uncompressed_name
                649                1534  59.3% 1.txt
               3072               10688  71.5% 2.txt
               3680               64128  94.3% 3.txt
               3680               64128  94.3% ccc/3.txt
               3072               10688  71.5% ccc/2.txt
                649                1534  59.3% ccc/1.txt
              14802              152700  90.3% (totals)

        4、解压缩文件(与gzip -d同样效果)

[root@mylinux bbb]# gunzip -r *
[root@mylinux bbb]# ls -R
.:
1.txt  2.txt  3.txt  ccc
./ccc:
1.txt  2.txt  3.txt




二、bzip2与bunzip2压缩

       命令格式

       压缩  : bzip2 [选项] [文件名。。。]

       解压缩  : bunzip2 [选项] [文件名。。。]


       常用命令选项

       -d :解压缩

       -f : 在压缩或解压缩时,若文件已存在,默认不会覆盖已有存在的文件。使用-f,可以强制进行覆盖

       -k :在压缩或解压缩时,默认会删除源文件。使用-k,会保留源文件。

       -q :安静模式

       -s :降低程序执行时内存的使用量

       -t :测试压缩文件的完整性

       -v :压缩或解压缩文件时,显示详细的信息


       实例

       1、压缩文件,并保留源文件

[root@mylinux bbb]# bzip2 -kv 1.txt 2.txt 3.txt
  1.txt:    2.263:1,  3.536 bits/byte, 55.80% saved, 1534 in, 678 out.
  2.txt:    3.413:1,  2.344 bits/byte, 70.70% saved, 10688 in, 3132 out.
  3.txt:   13.878:1,  0.576 bits/byte, 92.79% saved, 64128 in, 4621 out.
[root@mylinux bbb]# ls
1.txt  1.txt.bz2  2.txt  2.txt.bz2  3.txt  3.txt.bz2  ccc

       2、解压文件

[root@mylinux bbb]# ls
1.txt.bz2  2.txt.bz2  3.txt.bz2  ccc
[root@mylinux bbb]# bunzip2 -v *
  1.txt.bz2: done
  2.txt.bz2: done
  3.txt.bz2: done
bunzip2: Input file ccc is a directory.
[root@mylinux bbb]# ls
1.txt  2.txt  3.txt  ccc




三、zip与unzip压缩

       命令格式

       zip [参数] [zip文件名[文件1 文件2。。。]]

       

       常用命令选项

       -m :将文件压缩之后,删除源文件

       -q:安静模式,在压缩的时候不显示命令的执行过程

       -r:以递归方式将指定的目录下的所有子目录以及文件一起处理

      

       unzip [参数] zip文件

      

       常用命令选项

       -l:列出压缩文件所包含的内容

       -v:显示详细的执行过程


       实例

       1、压缩指定目录下所有的文件和目录

[root@mylinux bbb]# ls
1.txt  2.txt  3.txt  ccc
[root@mylinux bbb]# zip -r file.zip *
  adding: 1.txt (deflated 59%)
  adding: 2.txt (deflated 71%)
  adding: 3.txt (deflated 94%)
  adding: ccc/ (stored 0%)
  adding: ccc/3.txt (deflated 94%)
  adding: ccc/1.txt (deflated 59%)
  adding: ccc/2.txt (deflated 71%)
[root@mylinux bbb]# ls
1.txt  2.txt  3.txt  ccc  file.zip

        2、压缩部分文件

[root@mylinux bbb]# ls
1.txt  2.txt  3.txt  ccc
[root@mylinux bbb]# zip file.zip 2.txt 3.txt
  adding: 2.txt (deflated 71%)
  adding: 3.txt (deflated 94%)
[root@mylinux bbb]# ls
1.txt  2.txt  3.txt  ccc  file.zip

        3、查看压缩文件的情况

[root@mylinux bbb]# unzip -l file.zip
Archive:  file.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
    10688  03-25-2015 23:34   2.txt
    64128  03-25-2015 23:34   3.txt
---------                     -------
    74816                     2 files

        4、解压文件    

[root@mylinux aaa]# ls
bbb  file.zip
[root@mylinux aaa]# unzip file.zip
Archive:  file.zip
  inflating: 2.txt
  inflating: 3.txt
[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file.zip




四、xz压缩

       命令格式

       xz [选项] [文件名。。。]

       -d:对压缩文件解压缩

[root@mylinux bbb]# xz file.zip 2.txt 3.txt

       解压缩

[root@mylinux bbb]# xz -d file.zip

 




五、打包程序tar

       命令格式

      tar [选项] tar文件 [目录或文件]


      常用选项

      -c:创建新的归档文件

      -d:检查归档文件与指定目录的差异

      -r:往归档文件中追加文件

      -t:列出归档文件中的内容

      -v:显示命令执行的信息

      -u:只有当需要追加的文件比tar文件中已存在的文件版本更新的时候才添加

      -x:还原归档文件中的文件或目录

      -z:使用zip压缩归档文件

      -j:使用bzip2压缩归档文件


      实例

      1、打包文件

[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file.zip
[root@mylinux aaa]# tar -cvf fiel_2.tar bbb/
bbb/
bbb/3.txt
bbb/file.zip
bbb/ccc/
bbb/ccc/3.txt
bbb/ccc/1.txt
bbb/ccc/2.txt
bbb/1.txt
bbb/2.txt
[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file.zip

       2、查看归档文件的内容

[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file.zip
[root@mylinux aaa]# tar -tvf file_2.tar
drwxr-xr-x root/root         0 2015-03-26 20:51 bbb/
-rw-r--r-- root/root     64128 2015-03-25 23:34 bbb/3.txt
-rw-r--r-- root/root      7002 2015-03-26 20:51 bbb/file.zip
drwxr-xr-x root/root         0 2015-03-25 23:11 bbb/ccc/
-rw-r--r-- root/root     64128 2015-03-25 22:50 bbb/ccc/3.txt
-rw-r--r-- root/root      1534 2015-03-25 22:50 bbb/ccc/1.txt
-rwxr-xr-x root/root     10688 2015-03-25 22:50 bbb/ccc/2.txt
-rw-r--r-- root/root      1534 2015-03-25 23:34 bbb/1.txt
-rwxr-xr-x root/root     10688 2015-03-25 23:34 bbb/2.txt
[root@mylinux aaa]#

       3、还原归档文件

[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file.zip
[root@mylinux aaa]#  rm -rf bbb
[root@mylinux aaa]# ls
2.txt  3.txt  file_2.tar  file.zip
[root@mylinux aaa]# tar -xvf file_2.tar
bbb/
bbb/3.txt
bbb/file.zip
bbb/ccc/
bbb/ccc/3.txt
bbb/ccc/1.txt
bbb/ccc/2.txt
bbb/1.txt
bbb/2.txt
[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file.zip

         4、往归档文件中追加新文件

[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file.zip
[root@mylinux aaa]# tar rvf file_2.tar 2.txt
2.txt
[root@mylinux aaa]# tar -tvf file_2.tar
drwxr-xr-x root/root         0 2015-03-26 20:51 bbb/
-rw-r--r-- root/root     64128 2015-03-25 23:34 bbb/3.txt
-rw-r--r-- root/root      7002 2015-03-26 20:51 bbb/file.zip
drwxr-xr-x root/root         0 2015-03-25 23:11 bbb/ccc/
-rw-r--r-- root/root     64128 2015-03-25 22:50 bbb/ccc/3.txt
-rw-r--r-- root/root      1534 2015-03-25 22:50 bbb/ccc/1.txt
-rwxr-xr-x root/root     10688 2015-03-25 22:50 bbb/ccc/2.txt
-rw-r--r-- root/root      1534 2015-03-25 23:34 bbb/1.txt
-rwxr-xr-x root/root     10688 2015-03-25 23:34 bbb/2.txt
-rwxr-xr-x root/root     10688 2015-03-25 23:34 2.txt
[root@mylinux aaa]#


          更新文件

[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file.zip
[root@mylinux aaa]# echo "aaaaaa" >> bbb/3.txt
[root@mylinux aaa]# tar -uvf file_2.tar bbb/3.txt
bbb/3.txt
[root@mylinux aaa]#


         5、压缩归档文件

         使用gzip命令对目录进行压缩打包

[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file.zip
[root@mylinux aaa]# tar -czvf file_3.tar.gz bbb/
bbb/
bbb/3.txt
bbb/file.zip
bbb/ccc/
bbb/ccc/3.txt
bbb/ccc/1.txt
bbb/ccc/2.txt
bbb/1.txt
bbb/2.txt
[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file_3.tar.gz  file.zip

        使用bzip2进行压缩打包

[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file_3.tar.gz  file.zip
[root@mylinux aaa]# tar -cjvf file_4.tar.bz2 bbb/
bbb/
bbb/3.txt
bbb/file.zip
bbb/ccc/
bbb/ccc/3.txt
bbb/ccc/1.txt
bbb/ccc/2.txt
bbb/1.txt
bbb/2.txt
[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file_3.tar.gz  file_4.tar.bz2  file.zip

        还原gzip压缩的归档文件

[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file_3.tar.gz  file_4.tar.bz2  file.zip
[root@mylinux aaa]# rm -rf bbb
[root@mylinux aaa]# ls
2.txt  3.txt  file_2.tar  file_3.tar.gz  file_4.tar.bz2  file.zip
[root@mylinux aaa]# tar -xzvf file_3.tar.gz
bbb/
bbb/3.txt
bbb/file.zip
bbb/ccc/
bbb/ccc/3.txt
bbb/ccc/1.txt
bbb/ccc/2.txt
bbb/1.txt
bbb/2.txt
[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file_3.tar.gz  file_4.tar.bz2  file.zip

         还原bzip2压缩的归档文件

[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file_3.tar.gz  file_4.tar.bz2  file.zip
[root@mylinux aaa]# rm -rf bbb
[root@mylinux aaa]# ls
2.txt  3.txt  file_2.tar  file_3.tar.gz  file_4.tar.bz2  file.zip
[root@mylinux aaa]# tar -xjvf file_4.tar.bz2
bbb/
bbb/3.txt
bbb/file.zip
bbb/ccc/
bbb/ccc/3.txt
bbb/ccc/1.txt
bbb/ccc/2.txt
bbb/1.txt
bbb/2.txt
[root@mylinux aaa]# ls
2.txt  3.txt  bbb  file_2.tar  file_3.tar.gz  file_4.tar.bz2  file.zip

           打包压缩对比

[root@mylinux aaa]# ls -lh file_*
-rw-r--r--. 1 root root 170K 3月  26 21:27 file_2.tar
-rw-r--r--. 1 root root  13K 3月  26 21:16 file_3.tar.gz
-rw-r--r--. 1 root root  15K 3月  26 21:21 file_4.tar.bz2

           特殊用法:打包的时候排除某个文件或目录

[root@mylinux aaa]# tar rvf file_2.tar --exclude 2.txt












本内容由导师:阿铭提供技术支持:跟阿铭学linux 点这里




本文出自 “MyLinux” 博客,请务必保留此出处http://mylinuxlife.blog.51cto.com/4706737/1625829

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。