Linux常见的压缩文件的扩展名(虽然扩展名在Linux中没有实际作用)与压缩工具的对应关系:

*.Z        compress程序压缩的文件


*.bz2        bzip2程序压缩的文件


*.gz         gzip程序压缩的文件


*.tar        tar程序打包的文件,并没有压缩过


*.tar.gz     tar程序打包的文件,并且经过gzip压缩


常见的压缩命令:

        compress:compress[-dcr] 文件或目录名
                -d:用来解压缩


               -r:连同目录下的文件也同时给于压缩


               -c:将压缩数据输出成为standard output(输出到屏幕) 


              例如:compress man.config #原来的文件man.config将会被man.config.Z代替,压缩后只剩下man.config.Z


                         解压缩:compress -d man.config.Z #也可以用uncompress来解压缩。


                        如果压缩后要保留原文件:compress -c man.config >man.config.back.Z 那么压缩后将生成一个man.config.back.Z的文件

             compress使用的频率越来越低(有些Linux系统已经将compress拿掉了,如果想玩玩,要自己安装)。


        gzip,zcat


             gzip [-cdt#] 文件名


             zcat 文件名.gz


                    -c:将压缩的数据输出到屏幕


                    -d:解压缩的参数

                   -t:可以用来检验一个压缩的一致性

                  -#:压缩等级,-1最快,但是压缩比最差,-9最慢,但压缩比最好,default是-6

                 例如:gzip man.config  #压缩man.config,此时man.config会变成man.config.gz

                            zcat man.config.gz  #查看man.config.gz解压之后的内容

                           gzip -d man.config.gz  #解压man.config.gz

                          gzip -9 -c man.config > man.config.gz #用最佳的压缩比压缩man.config,并保留原文件。

               gzip主要想用来取代compress,所以compress的压缩文件可以使用gzip来解开,同时zcat也可以读取compress压缩的文件 

        bzip2,bzcat:

            bzip2 [-cdz] 文件名

            bzcat 文件名.bz2

                -c:将压缩的数据输出到屏幕

                -d:解压缩的参数

                -z:压缩的参数

                -#:压缩等级,-1最快,但是压缩比最差,-9最慢,但压缩比最好

               例如:bzip2 -z man.config  #压缩man.config,此时man.config会变成man.config.bz2

                          bzcat man.config.bz2  #屏幕上会显示man.config.bz2解压后的内容

                          bzip2 -d man.config.bz2  #解压man.config.bz2

                          bzip2 -9 -c man.config > man.config.bz2  #用最佳压缩比压缩man.config,并且保留原文件。

              当文件名为 *.bz, *.bz2, *.tbz, *.tbz2等,可以尝试使用bzip2来解压,可以使用bunzip2来代替bzip2 -d。

        tar:

            tar [-cxtzjvfpPN] 文件或目录名

                -c:建立一个压缩文档(create的意思)

                -x:解开一个压缩文档

               -t:查看tarfile文档的内容。

               注意:c/x/t不可同时存在,因为不可能同时压缩与解压

               -z:是否同时具有gzip的属性,即是否需要用gzip压缩

               -j:是否同时具有bzip2的属性,即是否需要用bzip2压缩

              -v:压缩的过程中显示档案

              -f:使用文件名,在f之后要立即接文件名,不要再加任何参数 

              -p:使用原文件的属性

              -P:可以使用绝对路径来压缩

              -N:比后面接的日期(yyyy/mm/dd)还要新的才会被打包进来

              --exclude FILE:在压缩过程中,不要将FILE打包

            例如:tar -cvf /tmp/etc.tar /etc #将整个/etc目录下的档案全部打包成/tmp/etc.tar,仅打包,不压缩。

                       tar -zcvf /tmp/etc.tar.gz /etc #将整个/etc目录下的档案全部打包后,以gzip压缩。


             tar -jcvf /tmp/etc.tar.bz2 /etc #将整个/etc目录下的档案全部打包后,以bzip2压缩。

                     注意参数f之后的文件名是自己取的,习惯上都用.tar来做识别

                     如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的tar文件

                     如果加j参数,则以.tar.bz2

                     tar -ztvf /tmp/etc.tar.gz #查看/tmp/etc.tar.gz文件的内容,由于使用gzip压缩,所以要加z这个参数。

                    cd /usr/local/src

                    tar -zxvf /tmp/etc.tar.gz #将/tmp/etc.tar.gz解压缩到/usr/local/src目录下,先进入/usr/local/src目录,然后解压

                    tar -zxvf /tmp/etc.tar.gz etc/passwd  #仅解压/tmp/etc.tar.gz内的etc/passwd这个文件

             tarfile与tarball:tarball就是经过tar打包后再压缩的文件,tarfile仅打包没压缩。  

            还可以分别调用压缩指令(gzip,bzip2)和tar来将一个tarball解开。例如:一个testing.tar.gz的文件,可以这么解开:
                    gzip -d testing.tar.gz #先解压缩

                    tar -xvf testing.tar 

            老的Unix系统可以这么玩,因为老系统gzip没有被整合到tar里面。            

        dd:

            可以用来备份这个分区(partition)

        cpio:

            适用于备份。