• Linux压缩解压命令


      linux中的压缩解压及打包:在linux下最常见的压缩文件通常都是以.tar.gz 为结尾的,除此之外还有.tar, .gz, .bz2, .zip等等。对于压缩文件来讲必须要带上后缀,这是为了判断压缩文件是由哪种压缩工具所压缩,而后才能去正确的解压缩这个文件。以下介绍常见的后缀名所对应的压缩工具。

    • .gz          gzip 压缩工具压缩的文件
    • .bz2        bzip2 压缩工具压缩的文件
    • .tar          tar 打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件)
    • .tar.gz     可以理解为先用tar打包,然后再gzip压缩
    • .tar.bz2   同上,先用tar打包,然后再bzip2压缩

    gzip压缩工具

    语法:gzip [-d#] filename 其中#表示数字1-9

    “-d”:表示解压缩

    “-#”:表示压缩等级,1表示最差,9表示最好,默认是6

    [root@Abbott ~]# cd test/
    [root@Abbott test]# touch test.txt
    [root@Abbott test]# ls
    test.txt
    [root@Abbott test]# gzip test.txt 
    [root@Abbott test]# ls
    test.txt.gz
    

      gzip 后面直接跟文件名,就在当前目录下把该文件压缩了,而原文件也会消失。

    [root@Abbott test]# gzip -d test.txt.gz 
    [root@Abbott test]# ls
    test.txt
    

      “gzip -d” 后面跟压缩文件,会解压压缩文件。gzip 是不支持压缩目录的。

    [root@Abbott ~]# gzip test/
    gzip: test/ is a directory -- ignored
    

      

    bzip2压缩工具

    语法:bzip2 [-dz] filename

    “-d”:解压缩

    “-z”:压缩

    压缩时,可以加 “-z” 也可以不加,都可以压缩文件,”-d” 则为解压的选项:

    [root@Abbott ~]# cd test/
    [root@Abbott test]# bzip2 test.txt 
    [root@Abbott test]# ls
    test.txt.bz2
    [root@Abbott test]# bzip2 -d test.txt.bz2 
    [root@Abbott test]# ls
    test.txt
    

      bzip2 同样也不可以压缩目录:

    [root@Abbott test]# cd ..
    [root@Abbott ~]# bzip2 test/
    bzip2: Input file test/ is a directory.
    

      

    tar压缩工具:

    tar 本身为一个打包工具,可以把目录打包成一个文件。

    语法:tar [-zjxcvfpP] filename

    “-z” : 同时用gzip压缩

    “-j” : 同时用bzip2压缩

    “-x” : 解包或者解压缩

    “-t” : 查看tar包里面的文件

    “-c” : 建立一个tar包或者压缩文件包

    “-v” : 可视化

    “-f” : 后面跟文件名,压缩时跟 “-f 文件名”,意思是压缩后的文件名为filename, 解压时跟 “-f 文件名”,意思是解压filename. 请注意,如果是多个参数组合的情况下带有 “-f”,请把 “-f” 写到最后面。

    “-p” : 使用原文件的属性,压缩前什么属性压缩后还什么属性。(不常用)

    “-P” : 可以使用绝对路径。(不常用)

    --exclude filename : 在打包或者压缩时,不要将filename文件包括在内。(不常用)

    [root@Abbott ~]# cd test/
    [root@Abbott test]# mkdir test1
    [root@Abbott test]# touch test
    test1/    test.txt  
    [root@Abbott test]# touch test1/test2.txt
    [root@Abbott test]# echo "hello" > test1/test2.txt
    [root@Abbott test]# ls
    test1  test.txt
    [root@Abbott test]# tar -cvf test1.tar test1/
    test1/
    test1/test2.txt
    [root@Abbott test]# ls
    test1  test1.tar  test.txt
    

      首先在test目录下建立test1目录,然后在test1目录下建立test2.txt, 并写入 “hello” 到test2.txt中,接着是用tar把test1打包成test1.tar. 请记住 “-f” 参数后跟的是打包后的文件名, 然后再是要打包的目录或者文件。tar 打包后,原文件不会消失,而依旧存在。. tar 不仅可以打包目录也可以打包文件,打包的时候也可以不加 “-v” 选项表示,表示不可视化。

    [root@Abbott test]# rm -rf test1.tar 
    [root@Abbott test]# tar -cf aaa.tar test1/ test.txt        
    [root@Abbott test]# ls
    aaa.tar  test1  test.txt
    

      删除原来的test1目录,然后解包aaa.tar,不管是打包还是解包,原来的文件是不会删除的,而且它会覆盖当前已经存在的文件或者目录。

    [root@Abbott test]# rm -rf test1
    [root@Abbott test]# ls
    aaa.tar  test.txt
    [root@Abbott test]# tar -xvf aaa.tar 
    test1/
    test1/test2.txt
    test.txt
    [root@Abbott test]# ls
    aaa.tar  test1  test.txt
    

      

    打包的同时使用gzip压缩

    tar命令非常好用的一个功能就是可以在打包的时候直接压缩,它支持gzip压缩和bzip2压缩。

    [root@Abbott test]# ls
    test1  test.txt
    [root@Abbott test]# tar -czvf aaa.tar.gz test1/
    test1/
    test1/test2.txt
    [root@Abbott test]# ls
    aaa.tar.gz  test1  test.txt
    

      “-tf” 可以查看包或者压缩包的文件列表:

    [root@Abbott test]# tar -tf aaa.tar.gz 
    test1/
    test1/test2.txt
    [root@Abbott test]# ls
    aaa.tar.gz  test1  test.txt
    

      “-zxvf” 用来解压.tar.gz的压缩包

    [root@Abbott test]# rm -rf test1/
    [root@Abbott test]# ls
    aaa.tar.gz  test.txt
    [root@Abbott test]# tar -zxvf aaa.tar.gz 
    test1/
    test1/test2.txt
    [root@Abbott test]# ls
    aaa.tar.gz  test1  test.txt
    

      

    打包的同时使用bzip2压缩

    和gzip压缩不同的是,这里使用 “-cjvf” 选项来压缩

    [root@Abbott test]# tar -cjvf bbb.tar.bz2 test1/
    test1/
    test1/test2.txt
    [root@Abbott test]# ls
    aaa.tar.gz  bbb.tar.bz2  test1  test.txt
    

      同样可以使用 “-tf” 来查看压缩包文件列表

    [root@Abbott test]# tar -tf bbb.tar.bz2 
    test1/
    test1/test2.txt
    

      解压.tar.bz2 的压缩包也很简单

    [root@Abbott test]# tar -jxvf bbb.tar.bz2 
    test1/
    test1/test2.txt
    

      

  • 相关阅读:
    day4-生成器
    第三天-函数
    编码问题
    可变不可变类型总结
    由var与let引起的百度地图所有的覆盖点的信息都是最后一个的
    《企业应用架构模式》 三
    IndexDB
    ESA与SOA
    SOA
    Dubbo(一)
  • 原文地址:https://www.cnblogs.com/zx3212/p/7404261.html
Copyright © 2020-2023  润新知