linux中 gzip bizp2 xz zip怎么用,解压缩


linux 中常用的压缩指令 

         压缩  gzip bzip2 xz , 解压gunzip  unxz bunzip2 解压对应的压缩包 *.tar.gz  *.tar.xz  *.tar.bz2(由于 compress 效率底下,已经丢弃不用啦)

选项与参数

          1. -c --stdout --to-stdout 将压缩的结果输出标准输出上,即屏幕。

          2. -d --decompress --uncompress 将压缩包解压缩,解压缩指令不支持该选项

          3. -v  --verbose 过程中显示详细信息,文件名和压缩比等信息

          4. -r --recursive 递归压缩目录及目录下的文件

          5. -# --fast --best 指明压缩等级, # 代表数字 [1-9] 1 压缩最快压缩比最差,9压缩最慢压缩比最好

          6. -l --list 显示压缩文件的详细信息,如 压缩后文件的大小,压缩前文件大小,压缩率,文件名等

          7. -t  --test 显示压缩文件的完整性

          8. -k  --keep 压缩或解压时保留原文件,该选项 gzip 不支持,bzip2 xz 支持

          9. -f  --fore 强制压缩或者解压文件,如覆盖文件等不提示 


   说明:压缩指令gzip bzip2 xz,解压缩 指令gunzip bunzip unxz, 其中xz压缩比最高,但是最费时间,其次是 bzip2,最后是gzip,但是gzip 用度最广,由于只是压缩算法和效率不一样,因此压缩指令的用法除了 -k 选项 gzip 不支持,解压缩指令不支持 -d 选项外,其他都是一样的,将指令换成其他的指令就就可以了,以下以 gzip 为例

  

  1. 压缩一个或多个文件, 在linux中压缩和解压默认都是不保留原文件的 

gzip -v test1 test2     # 默认以 6 压缩等级压缩,压缩后生成 test1.gz test2.gz文件,而 test1 test2 文件则不存在
gzip -v test1.gz test2.gz    #解压缩test1.gz 文件,解压后生成 test1 test2,而 test1.gz test2.gz 文件将不存在
gunzip -v test1.gz test2.gz  # 同上,解压缩


  2. ,若要保留,则需要数据量重定向   >

gzip -cv test1 > test1.tar       # 压缩保留源文件,该目录下游 test1 和 test1.tar 两个文件
gzip -dcv test1.tar > test1      # 解压缩保留源文件,test1文件不必存在,gzip会自动创建,若已经存在,将会覆盖该文件 
gunzip -cv test1.tar > test1

 

  3.  利用标准输出 -c 和 重定向  > 压缩或解压缩到指定目录

gzip -vc test2 > testdir/test2.gz      #将test2 压缩到 testdir中的 test2.gz 文件
gzip -dvc test2.gz > /tmp/test2      #将test2 解缩到 tmp目录中的 test2 文件
gunzip -vc test2.gz > /tmp/test2


  4. 以最大压缩比压缩

gzip -v9 test1    #将以9为压缩等级压缩,如果文件过大,耗时比较长

  5. 递归压缩目录下的所有文件,目标文件以原文件末尾加上 .gz 
gzip -rv mydir/      # mydir 目录下有文件 test1 test2 test3 三个文件,压缩后 mydir 目录将有 test1.gz test2.gz test3.gz
gzip -dv ./*       # 解压当前目录下所有压缩文件
gunzip -v ./*

  6. 检查压缩文件的完整性 及 列出压缩文件详细信息
[root@localhost testdir]# gzip -vt testa.gz            
testa.gz:        OK
[root@localhost mydir]# gzip -l test1.gz 
         compressed        uncompressed  ratio uncompressed_name
            3953830             4121063   4.1% test1
[root@localhost mydir]# gunzip -l test1.gz 
         compressed        uncompressed  ratio uncompressed_name
            3953830             4121063   4.1% test1           #没有错,gunzip 也支持列出详细信息 

  7. bzip2 xz 保留源文件压缩,当然 bzip2 xz 也可以用上面的 重定向数据流来压缩或解压文件
bzip -k testa     #将testa 文件压缩成 testa.bz2,同时 testa 文件不删除


        更多; zip 压缩指令 与 unzip 解压指令,为了兼容windows下面的压缩包,linux中也能用zip打包,即windows中的 *.zip 包也可以在linux中也能用 unzip 指令解压,同样 zip unzip也像window中那样是保留原文件的,zip/unzip 复杂的选项特别多,这里介绍常用的选项

  zip

      -r:递归压缩目录下的文件和子目录

zip -r testdir.zip testdir/    # testdir 目录中有多个文件,将所有文件压缩到当前目录中的testdir.zip

      -m:将文件压缩后添加压缩包,并删除原文件;

zip -m test1.zip test2  # 将test2 压缩后添加到 test1.zip 中,此时test1.zip 中含有 test1 test2 两个文件,但是当前目录中的test2 这个文件就删除没有了, -m 与 -g 选项的区别就是保留与不保留的区别


      -u:将更新的文件添加到压缩包中

zip -u test.zip test4    # test.zip 中含有 test1 test4 这个两个文件,我将test4 这个文件修改后,更新test.zip 中的test4 内容,更新后,test4 这个文件保留

      

        -P: 大写的p,加密压缩,为压缩包指定密码,即解压时需要输入密码

zip -P 123 test1.zip test1      # 加密压缩, 123 是密码,test1.zip 压缩后的文件,test1 被压缩的文件

      -v:显示压缩过程

      -[0-9]:执行压缩等级

      -g:将文件压缩并添加到已有的压缩包,不新建压缩包,且不删除原文件

 zip -g test.zip test3         # test.zip 含有 test1 test2文件,现在将test3 加入到 test.zip 中,test.zip 中将有 test1 test2 test3 这三个文件,且当前目录中的test3文件不会删除

   unzip: 解压 .zip 的压缩包,同windows 下的解压风格,解压后保留原文件的

       

       -v 显示执行过程的详细信息

       -c 将解压的结果输出标准输出上,即屏幕

unzip -c test1.zip > test1       # 将test1.zip 解压到test1这个文件

       -d 将文件解压到指定的目录

[root@localhost mydir]#unzip test1.zip -d /tmp/mydir/testdir/    #将test1.zip 解压到 /tmp/mydir/testdir 目录下,该目录下将含有 test1这个文件,同时 test1.zip 这个文件保留
Archive:  test1.zip

       -l 显示压缩包中的文件信息

[root@localhost mydir]# unzip -l test1.zip    #显示 test1.zip 文件信息
Archive:  test1.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
  4121063  11-09-2017 22:29   test1
---------                     -------
  4121063                     1 file

       - P 解压时指定密码,针对加密码的压缩包

[root@localhost mydir]#unzip test1.zip       # 解压上面的加密压缩包
Archive:  test1.zip
[test1.zip] test1 password:      #输入密码 123
  inflating: test1                   
[root@localhost mydir]# 

         -o 若用同名文件,不询问用户,直接覆盖掉
[root@localhost mydir]#unzip test1.zip     #改目录下已经有test1这个文件,解压时将询问
Archive:  test1.zip
replace test1? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
  inflating: test1                           
[root@localhost mydir]# unzip -o test1.zip    #强行覆盖,不做任何信息
Archive:  test1.zip
  inflating: test1                   
[root@localhost mydir]# 

zcat/ bzcat/ xzcat       zmore/ bzmore/ xzmore      zless/ bzless/ xzless  zgrep/ bzgrep/ xzgrep

这些指令就是不解压文件读取压缩文件的内容,

  其中 zcat 读取 *.gz  *.zip 压缩包文件的内容

           bzcat读取 *.bz2 压缩包文件的内容

           xzcat读取 *.xz 压缩包文件的内容

           zmore 读取文件是结合more工具

           zless 读取文件时结合 less工具

           zgrep 不解压包搜索压缩文件的内容,支持正则表达式



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值