zoukankan      html  css  js  c++  java
  • tar、7z(7zip)压缩/解压缩指令的使用

    本文介绍tar、7z指令的用法

    tar指令

    在Linux中,使用的最多的压缩/解压缩指令就是tar指令了。

    tar指令用来将多个文件/文件夹结构打包。

    在实际使用中。往往使用tar对压缩的支持,即同一时候进行打包和压缩两步操作。

    经常使用的下面几种文件格式能够由tar指令生成。

    .tar ~ 仅对文件/文件夹结构进行打包操作,不压缩;

    .tar.gz ~ 对文件/文件夹结构进行打包。并依照gzip格式进行压缩;

    .tar.bz2 ~对文件/文件夹结构进行打包,并依照bz2格式进行压缩;

    .tar.xz ~对文件/文件夹结构进行打包,并依照LZMA算法进行压缩(Linux内核使用此格式公布);

    指令格式

    $ tar --help

    使用方法: tar [选项...] [FILE]...

    GNU 'tar' saves many files together into asingle tape or disk archive, and can

    restore individual files from the archive.

    Examples:

      tar-cf archive.tar foo bar  # Createarchive.tar from files foo and bar.

      tar-tvf archive.tar         # List all filesin archive.tar verbosely.

      tar-xf archive.tar          # Extract allfiles from archive.tar.

    tar指令的经常使用选项例如以下列表所看到的:

    -c: 建立压缩档案

    -x:解压

    -t:查看内容

    -r:向压缩归档文件末尾追加文件

    -u:更新原压缩包中的文件

    这五个是独立的命令,压缩解压都要用到当中一个,能够和别的命令连用但仅仅能用当中一个。以下的參数是依据须要在压缩或解压档案时可选的。

    -z:有gzip属性的

    -j:有bz2属性的

    -J:有xz属性的

    -v:显示全部过程

    -C:切换到某个文件夹下运行tar指令

    -f: 使用档案名字,切记,这个參数是最后一个參数,后面仅仅能接档案名。(必须加此參数)

    使用演示样例

    $cd ~/study

    $rm –rf *

    $mkdir –p d1/d11

    $mkdir d2

    $touch d1/d11/f1.c

    $touch d2/f2.php

    $cd ../

    #$tar czf study.tar.gz study/ ~ 打包并运行.gz格式压缩

    #$tar cjf study.tar.bz2 study/ ~ 打包并运行.bz2格式压缩

    $tar cJf study.tar.xz study/ ~ 打包并运行.xz格式压缩

     

    #$tar tf study.tar.gz ~ 查看压缩包内的文件夹列表

    #$tar tf study.tar.bz2 ~ 查看压缩包内的文件夹列表

    $tar tf study.tar.xz ~ 查看压缩包内的文件夹列表

    study/

    study/d1/

    study/d1/d11/

    study/d1/d11/f1.c

    study/d2/

    study/d2/f2.php

    $rm –rf study

    #$tar xzf study.tar.xz ~ 解压缩.gz格式的压缩包到当前文件夹

    #$tar xjf study.tar.xz ~ 解压缩.bz2格式的压缩包到当前文件夹

    $tar xJf study.tar.xz ~ 解压缩.xz格式的压缩包到当前文件夹

    $ls

    study.tar.xz study

    $tar xJf study.tar.xz -C / ~ 将压缩包解压到根文件夹下

    $ ls /

    bin      Cygwin.bat Cygwin-Terminal.ico  etc   lib proc   tmp  var

    cygdrive Cygwin.ico  dev                  home  opt  study usr

    很多其它信息

    $man tar

    7z指令

    7z是7zip压缩工具的经常使用压缩文件格式。7zip是一个开源的压缩工具,软件本身十分小巧,功能强大。是眼下公认的压缩比最大的压缩解压缩软件,近年来開始渐渐流行。

    7zip支持众多的压缩格式,支持7z, XZ,BZIP2, GZIP, TAR, ZIP格式的压缩/解压缩。支持CAB, ISO, RAR, RPM, XAR, Z等众多格式的解压缩。

    程序退出代码0表示正常。没有错误。

    命令格式

    $ 7z --help

    Usage: 7z <command>[<switches>...] <archive_name> [<file_names>...]

          [<@listfiles...>]

    经常使用的command例如以下:

    a 加入文件到压缩文件

    d 从压缩文件里删除文件

    e 从压缩文件里解压缩文件。不包括文件夹结构

    l 列出压缩包中的内容

    t 測试压缩文件

    u更新文件到压缩文件

    x从压缩文件里解压缩,包括文件夹结构

    使用演示样例

    $ rm * -rf

    $ mkdir -p study/d1/d11 study/d2

    $ touch study/d1/d11/f1.c study/d2/f2.php

    $ 7z a study.7z study/ ~ 将study整个文件夹加入到压缩包study.7z中

    Scanning

    Creating archive study.7z

    Everything is Ok

    $ 7z t study.7z ~ 測试压缩包

    Processing archive: study.7z

    Testing    study/d1/d11/f1.c

    Testing    study/d2/f2.php

    Testing    study/d2

    Testing    study/d1/d11

    Testing    study/d1

    Testing    study

    Everything is Ok

    $ rm -rf study

    $ 7z x study.7z ~ 解压缩包到当前文件夹

    Processing archive: study.7z

    Extracting study/d1/d11/f1.c

    Extracting study/d2/f2.php

    Extracting study/d2

    Extracting study/d1/d11

    Extracting study/d1

    Extracting study

    Everything is Ok

    $ 7z d study.7z study/d2/f2.php ~ 删除压缩包中的指定文件

    Updating archive study.7z

    Everything is Ok

    $ 7z t study.7z ~ 測试压缩包

    Processing archive: study.7z

    Testing    study/d1/d11/f1.c

    Testing    study/d2

    Testing    study/d1/d11

    Testing    study/d1

    Testing    study

    Everything is Ok

    $ 7z l study.7z ~ 查看压缩包中的文件夹结构

    Listing archive: study.7z

    --

    Path = study.7z

    Type = 7z

    Solid = -

    Blocks = 0

    Physical Size = 152

    Headers Size = 152

    study/d1/d11/f1.c

    study/d2

    study/d1/d11

    study/d1

    study

    $ 7z u study.7z study/d1/d11/f1.c ~ 更新压缩包中的指定文件

    Scanning

    Updating archive study.7z

    Compressing study/d1/d11/f1.c

    Everything is Ok

    $ 7z l study.7z ~ 查看压缩包中的文件夹结构

    Listing archive: study.7z

    --

    Path = study.7z

    Type = 7z

    Method = LZMA

    Solid = -

    Blocks = 1

    Physical Size = 260

    Headers Size = 186

    study/d1/d11/f1.c

    study/d2

    study/d1/d11

    study/d1

    study

    7zip的压缩格式控制

    在上述演示样例中,演示了7z压缩/解压缩指令的使用。

    在使用7z进行压缩/解压缩时,压缩格式是依据命令中提供的压缩包的文件后缀名来识别的。比如。7z a study.zip study/ 将文件夹树study依照zip格式进行压缩,7z a study.7z study/将文件夹树study依照7z格式进行压缩。

    反之,解压缩时,压缩格式也是依据压缩包文件名称后缀自己主动识别的。

    对于7zip和tar的各种压缩格式(tar.gz tar.bz2 tar.xz)之间的兼容。能够參考例如以下实现。

    $ 7z a study4.tar study ~ step1 先按tar格式进行打包

    #依照实验结果判断,本条指令与tar cf study4.tar study 具有同样效果

    Scanning

    Creating archive study4.tar

    Compressing study

    Compressing study/d1

    Compressing study/d1/d11

    Compressing study/d1/d11/f1.c

    Compressing study/d2

    Compressing study/d2/f2.php

    Everything is Ok

    $ 7z a study4.tar.gz study4.tar ~ 将已打包的文件进行按gzip格式压缩

    Scanning

    Creating archive study4.tar.gz

    Compressing study4.tar

    Everything is Ok

    $tar tf study4.tar ~ 使用tar指令測试文件包。无错误

    study/

    study/d1/

    study/d1/d11/

    study/d1/d11/f1.c

    study/d2/

    study/d2/f2.php

    $tar tf study4.tar.gz ~ 使用tar指令測试压缩包,无错误

    study/

    study/d1/

    study/d1/d11/

    study/d1/d11/f1.c

    study/d2/

    study/d2/f2.php

    $ rm study -rf

    $tar xzvf study4.tar.gz ~ 使用tar解压缩由7z生成的.tar.gz压缩包,成功。

    study/

    study/d1/

    study/d1/d11/

    study/d1/d11/f1.c

    study/d2/

    study/d2/f2.php

    $ rm *.*

    $ ls

    study

    $tar czf study4.tar.gz study ~ 使用tar指令生成.tar.gz格式压缩包

    $ 7z x study4.tar.gz ~ 使用7z解压缩tar生成的压缩包,成功

    Processing archive: study4.tar.gz

    Extracting study4.tar

    Everything is Ok

    $ 7z x study4.tar ~ 使用7z进一步解压,成功

    Processing archive: study4.tar

    Extracting study

    Extracting study/d1

    Extracting study/d1/d11

    Extracting study/d1/d11/f1.c

    Extracting study/d2

    Extracting study/d2/f2.php

    Everything is Ok

    $

    $tar cvf study5.tar study ~ 使用tar创建无压缩的文件包

    study/

    study/d1/

    study/d1/d11/

    study/d1/d11/f1.c

    study/d2/

    study/d2/f2.php

    $ 7z a study5.tar.bz2 study5.tar ~ 使用7zip将文件包压缩

    Scanning

    Creating archive study5.tar.bz2

    Compressing study5.tar

    Everything is Ok

    $tar tf study5.tar.bz2 ~ 使用tar測试压缩包

    study/

    study/d1/

    study/d1/d11/

    study/d1/d11/f1.c

    study/d2/

    study/d2/f2.php

    $ 7z x study5.tar.bz2 ~ 使用7zip解压缩压缩包

    Processing archive: study5.tar.bz2

    file study5.tar

    Extracting study5.tar

    Everything is Ok

    $ rm -rf study

    $ 7zx study5.tar ~ 使用7zip还原tar指令生成的文件包

    Processing archive: study5.tar

    Extracting study

    Extracting study/d1

    Extracting study/d1/d11

    Extracting study/d1/d11/f1.c

    Extracting study/d2

    Extracting study/d2/f2.php

    Everything is Ok

    $ rm study -rf

    $tar xjvf study5.tar.bz2 ~ 使用tar解压缩tar+7zip生成的.tar.bz2压缩包

    study/

    study/d1/

    study/d1/d11/

    study/d1/d11/f1.c

    study/d2/

    study/d2/f2.php

    $

  • 相关阅读:
    C# 小算法1
    函数 y=x^x的分析
    随机数
    对拍
    Cube Stack
    Permutation
    一笔画问题
    康托展开&&康托逆展开
    待完成
    小错误 17/8/10
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7140788.html
Copyright © 2011-2022 走看看