Linux 上常见的压缩解压命令

在 linux 学习压缩命令

linux 上的压缩命令 tar

  • 说明:tar 是 linux 中最常用的解压缩命令。tar 命令可用于处理后缀名为 tar,tar.gz,tgz,.tar.Z,tar.bz2 的文件

  • 参数说明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    -c 建立新的压缩文件
    -r 添加文件到已经压缩的文件
    -u 添加改变了和现有的文件到已经存在的压缩文件
    -x 从压缩的文件中提取文件
    -t 显示压缩文件的内容
    -z 支持gzip解压文件
    -j 支持bzip2解压文件
    -v 显示操作过程
    -k 保留源有文件不覆盖
    -C 切换到指定目录
    -f 指定压缩文件

    --delete 删除包中文件
    --strip-components 去除目录
    --add-file 向包中添加文件
  • 压缩

    • 归档 tar 包,不压缩

      1
      2
      3
      tar -cvf test.tar test1.log test2.log #归档多个文件
      tar -cvf test.tar test/*  #归档test目录下所有文件
      tar -cvf test.tar *.log  #归档所有以.log结尾的文件
    • 归档并压缩为 tar.gz 或 tar.bz2

      1
      2
      tar -zcvf test.tar.gz file1 file2 #打包,并以gzip压缩
      tar -jcvf test.tar.bz2 file1 file2 #打包,并以bzip2压缩
  • 解压

    • 解压 tar.gz 和 tar 包到当前目录

      1
      2
      tar -xvf test.tar.gz
      tar -xvf test.tar
    • 解压到指定目录

      1
      2
      tar -xvf test.tar.gz -C dir
      tar -xvf test.tar -C dir

linux 上的压缩命令 zip/unzip

  • 命令说明:zip 和 unzip 命令主要用于处理 zip 包

  • 参数说明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # zip部分
    -d 从压缩文件内删除指定的文件。
    -f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
    -j 只保存文件名称及其内容,而不存放任何目录名称。
    -r 递归处理,将指定目录下的所有文件和子目录一并处理。
    -u 更换较新的文件到压缩文件内。
    -v 显示指令执行过程或显示版本信息。
    -y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
    - <压缩效率> 压缩效率是一个介于1-9的数值。

    # unzip部分
    -l 显示压缩文件内所包含的文件
    -j 只保存文件名称及其内容,而不存放任何目录名称。
    -o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该
    -v 显示指令执行过程或显示版本信息。
    -d 指定解压目录,目录不存在会创建
  • 压缩

    • 压缩文件

      1
      2
      zip -r test.zip test/ #打包test目录下的文件
      zip -rj test.zip test/ #打包test目录下文件,且压缩包不带test目录
    • 指定压缩率打包文件

      1
      zip -r8 test.zip test/* #数值(1-9)越大,压缩率越高,耗时越长
  • 解压

    • 查看压缩包中的文件信息
      1
      2
      unzip -l test.zip #可以看到压缩包中的文件名,日期等信息
      unzip -v test.zip #查看更多信息,例如crc校验信息等
    • 解压压缩包
      1
      unzip -o test.zip -d dir #讲test.zip解压到dir目录

linux 上的压缩命令 gzip/gunzip

  • 命令说明

    1
    2
    3
    4
    -k 保留源文件
    -d 解开压缩文件
    -r 递归处理,将指定目录下的所有文件及子目录一并处理
    -v 显示指令执行过程
  • 压缩

    1
    2
    # 注意:该命令只能压缩文件
    gzip [需要压缩的文件]
  • 解压

    1
    2
    # 注意:解压后不保留原文件
    gunzip [需解压缩的文件]

linux 上的压缩命令 bzip2/bunzip2

  • 压缩

    1
    2
    3
    # 只压缩文件
    bzip2 [-k] [文件]
    # -k  产生压缩文件后保留原文件
  • 解压

    1
    2
    bunzip2 选项 [-k] [压缩文件]
    # -k  解压缩文件后保留原文件

linux 上的压缩命令 rar/unrar

  • 命令说明:rar 和 unrar 命令并非 linux 发行版自带命令,需要另外安装

  • 压缩

    1
    rar a test.tar test  #将test文件压缩为test.tar
  • 解压

    1
    2
    rar e test.rar       #解压test.tar
    unrar x test.rar #解压test.tar

linux 上的压缩命令 7za

  • ** 命令说明:** 解压.7z 结尾的压缩文件

  • 解压

    1
    7za x [文件.7z] -o [输出目录]
  • 压缩

    1
    7za a [文件.7z] [待压缩内容] 

linux 压缩格式的压缩率比较?

  • tar.bz2>tar.gz>zip>tar
  • 压缩率越高,压缩以及解压的时间也就越长

linux 上按格式快速查找解压命令?

  • .tar

    1
    tar -xvf file.tar
  • .gz

    1
    gunzip all.gz
  • .tgz 或.tar.gz

    1
    2
    tar -xzf all.tgz
    tar -xzf all.tar.gz
  • .bz2

    1
    bunzip2 all.bz2
  • .tar.bz2

    1
    tar -xjf all.tar.bz2
  • .Z

    1
    uncompress all.Z
  • .tar.Z

    1
    tar -xZf all.tar.z
  • .zip

    1
    2
    # 解压之后也是保留原文件
    uzip file.zip
  • .rar

    1
    2
    rar e file.rar       #解压test.tar
    unrar x file.rar #解压test.tar

linux 上压缩解压缩命令速查表?