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

$

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM