Linux文件压缩/打包/解压

    在Linux日常维护中,经常需要备份同步一些比较重要的文件,而在传输过程中如果文件比较大往往会非常慢,而且还会非常占用空间,这时候就需要我们使用压缩工具对大文件进行压缩打包,下面我们来介绍一下常用的压缩工具以及其使用方法。

1.命令: gzip [-d][-1-9][filename]
  作用:用来压缩文件,不能直接压缩目录,压缩完毕后源文件消失
    ‘-d’      解压
    ‘-[1-9]’  压缩等级(默认为6)
  
  若想查看gzip压缩文件内容,可使用命令
  zcat filename.gz

    补充:
      '-c' 指定路径
    示例:
      压缩:gzip -c 1.txt > /tmp/1.txt.gz
      解压:gzip -d -c 1.txt.gz > /tmp/1.txt
           gunzip -c 1.txt.gz > /tmp/1.txt

    注意:以上命令解压/压缩完后源文件不会被删除


2.命令: bzip2 [-d][-1-9][filename]
  作用:用来压缩文件,不能直接压缩目录,压缩完毕后源文件消失
    ‘-d’      解压
    ‘-[1-9]’  压缩等级(默认为9)
  
  若想查看bzip2压缩文件内容,可使用命令
  bzcat filename.bz2

   补充:
   bzip2也支持-c选项,也是压缩后源文件不会被删除

 
3.命令: xz [-d][-1-9][filename]
  作用:用来压缩文件,不能直接压缩目录,压缩完毕后源文件消失
    ‘-d’      解压
    ‘-[1-9]’  压缩等级(默认为6)
  
  若想查看xz压缩文件内容,可使用命令
  xzcat filename.xz

 

    其实,上述三个压缩命令并不常用,因为有更为强大的tar工具用以实现压缩的功能,到底有多强大呢,下面就来介绍工具tar

4.命令:tar  [-zxcvf]
  ‘-z’ 是否同时具有gzip
  ‘-j’ 是否同时具有bzip2
  ‘-J’ 是否透视具有xzip
  ‘-x’ 解开一个压缩文件
  ‘-t’ 查看压缩包里面的文件
  ‘-c’ 建立一个压缩文件
  ‘-v’ 可视化
  ‘-f’ 使用filename
  ‘--exclude filename’ 在压缩过程中,跳过filename不打包
  ‘-C’ 指定解压目录(常用)
  '-t' 用来查看压缩包里面的内容
  
  用法:用以压缩解压文件/目录
  格式:
    压缩时:tar zxvf test.tar.gz test ,即 tar [被压缩完后的文件][没被压缩时的文件]这非常重要!
    解压时:tar zcvf test.tar.gz -C /tmp ,不用参数‘-C’的情况下是解压到当前目录,'-C'指定解压目录
    压缩时排除多个文件:tar zxvf test.tar.gz --exclude 1.txt --exclude 2.txt test ,也就是tar [被压缩完的文件] [要排除的文件][没被压缩时的文件]
  
  注意:
    (1使用tar打包之后,绝对路径前面的/会去掉(仔细想想为什么会酱紫)2tar本身不具有压缩功能,只是进行打包而已,要使用压缩功能必须与gzip或bzip2一起使用,其默认压缩级别取决于gzip或bzip2的默认压缩级别。
         要改变压缩级别,需要将打包和压缩分开进行,先用tar进行打包,然后用gzip或bzip2指定压缩级别对打包文件进行压缩。例如,
           tar -cvf FILE.tar FILE && gzip -9 FILE.tar
           tar -cvf FILE.tar FILE && bzip2 -6 FILE.tar
拓展用法:
    tar cvf  -  test| ssh 10.0.1.11 "cd /copy1/; tar xvf  -"
  命令解析:
    还记得上面说的压缩时候的格式么,这条命令在管道‘|’之前那部分就是如此
    ‘-’代表标准输出
    因此tar cvf  -  test意为“将test的内容打包成标准输出”
    而  tar xvf  - 则意为“将上面的标准输出的内容解压到当前目录”
    至于ssh部分请参考之前关于ssh的文章,这里不作详细描述
  命令作用:
    这条命令非常实用,用于实现通过网络拷贝数据

 

    说完了tar,问一个背景吧,你知道在windows下常见的压缩包有rar和zip,默认rar在linux下是不支持压缩和解压吗,好在有相关的工具可以安装在linux平台上。而zip的压缩包是可以同时存在于linux平台和windows平台上的,因此,我们来看一下zip和/unzip命令。

5.命令:zip  [-r][filename.zip][filename]
  作用:用来压缩文件/目录
    ‘-r’  默认不支持直接压缩目录,需要用此参数
  
  注意:zip压缩的格式类似与tar,都是压缩后,压缩前
  
  命令:unzip [-ld] [file.zip]
  作用:解压zip文件,且解压完毕后文件不会消失
   ‘-l’  查看文件清单,类似于tar的-t
   ‘-d’  指定解压目录,类似于tar的-C

 

最后更新时间:2017年4月7日09:31:43

posted @ 2016-11-03 16:02  ImJerryChan  阅读(1102)  评论(0编辑  收藏  举报