Linux下tar bz gz等壓縮包的壓縮和解壓【轉】


Linux下用戶經常需要備份計算機系統中的數據,為了節省存儲空間,常常將備份文件進行壓縮,本文是對壓縮和解壓命令的大致總結

.tar.gz   解壓:tar zxvf FileName.tar.gz   壓縮:tar zcvf FileName.tar.gz dirName

solaris下解壓 *.tar.gz可能有些不同,按照以下兩步實現解壓:

1、gzip -d *.tar.gz

2、tar xvf *.tar

第一步,先把*.tar.gz格式解壓成*.tar格式

第二步,直接解壓*.tar格式文件,完成解壓

--------------------------------------------- .tar   

解包:tar xvf FileName.tar 

    tar xvf FileName.tar -C DirName(解壓到指定文件夾DirName)   

打包:tar cvf FileName.tar DirName

---------------------------------------------

.gz

  解壓1:gunzip FileName.gz

  解壓2:gzip -d FileName.gz

  壓縮:gzip FileName

.tar.gz 和 .tgz

  解壓:tar zxvf FileName.tar.gz

  壓縮:tar zcvf FileName.tar.gz FileName

---------------------------------------------

.bz2

  解壓1:bzip2 -d FileName.bz2

  解壓2:bunzip2 FileName.bz2

  壓縮: bzip2 -z FileName

.tar.bz2

  解壓:tar jxvf FileName.tar.bz2

  壓縮:tar jcvf FileName.tar.bz2 FileName

---------------------------------------------

.bz

  解壓1:bzip2 -d FileName.bz

  解壓2:bunzip2 FileName.bz

  壓縮:未知

.tar.bz

  解壓:tar jxvf FileName.tar.bz

  壓縮:tar jcvf FileName.tar.bz FileName

---------------------------------------------

.z

  解壓:uncompress FileName.Z

  壓縮:compress FileName

.tar.z

  解壓:tar zxvf FileName.tar.z

  壓縮:tar zcvf FileName.tar.z DirName

---------------------------------------------

.zip

  解壓:unzip FileName.zip

  壓縮:zip FileName.zip DirName

---------------------------------------------

.rar

  解壓:rar x FileName.rar

  壓縮:rar a FileName.rar DirName

  rar請到:http://www.rarsoft.com/download.htm 下載!

  解壓后請將rar_static拷貝到/usr/bin目錄(其他由$PATH環境變量指定的目錄也可以):

  [root@www2 tmp]# cp rar_static /usr/bin/rar

---------------------------------------------

.lha

  解壓:lha -e FileName.lha

  壓縮:lha -a FileName.lha FileName

  lha請到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下載!

  >解壓后請將lha拷貝到/usr/bin目錄(其他由$PATH環境變量指定的目錄也可以):

  [root@www2 tmp]# cp lha /usr/bin/

---------------------------------------------

.rpm

  解包:rpm2cpio FileName.rpm | cpio -div

---------------------------------------------

.deb

  解包:ar p FileName.deb data.Tar.gz | Tar zxf -

---------------------------------------------

.Tar .tgz .Tar.gz .Tar.Z .Tar.bz .Tar.bz2 .zip .cpio .rpm

.deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx

.zoo .cab .kar .cpt .pit .sit .sea

  解壓:sEx x FileName.*

  壓縮:sEx a FileName.* FileName

  sEx只是調用相關程序,本身並無壓縮、解壓功能,請注意!

  sEx請到: http://sourceforge.net/projects/sex下載!

  解壓后請將sEx拷貝到/usr/bin目錄(其他由$PATH環境變量指定的目錄也可以):

  [root@www2 tmp]# cp sEx /usr/bin/

參考文獻:Linux 文件壓縮工具指南 其實看幫助是最好的方法,一般各個命令都可以用“--help”參數或者 man command(如:man tar)得到常用使用方法!

---------------------------------------------

tar命令

  tar可以為文件和目錄創建檔案。利用Tar,用戶可以為某一特定文件創建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。 Tar最初被用來在磁帶上創建檔案,現在用戶可以在任何設備上創建檔案,如軟盤。利用Tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對於備份文件或將幾個文件組合成為一個文件以便於網絡傳輸是非常有用的。Linux上的Tar是GNU版本的。

語法:tar [主選項+輔選項] 文件或者目錄

  使用該命令時,主選項是必須要有的,它告訴tar要做什么事情,輔選項是輔助使用的,可以選用。

主選項:

  c 創建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項。

  r 把要存檔的文件追加到檔案文件的未尾。例如用戶已經作好備份文件,后發現還有一個目錄或文件需要備份追加,這時可以使用該選項。

  t 列出檔案文件的內容,查看已經備份了哪些文件。

  u 更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最后。

  x 從檔案文件中釋放文件。

輔助選項:

  b 該選項是為磁帶機設定的。其后跟一數字,用來說明區塊的大小,系統預設值為20(20*512 bytes)。

  f 使用檔案文件或設備,這個選項通常是必選的。

  k 保存已經存在的文件。例如我們把某個文件還原,在還原的過程中,遇到相同的文件,不會進行覆蓋。

  m 在還原文件時,把所有文件的修改時間設定為現在。

  M 創建多卷的檔案文件,以便在幾個磁盤中存放。

  v 詳細報告tar處理的文件信息。如無此選項,tar不報告文件信息。

  w 每一步都要求確認。

z 用gzip來壓縮/解壓縮文件,加上該選項后可以將檔案文件進行壓縮,但還原時也一定要使用該選項進行解壓縮。

例1:把/home目錄下包括它的子目錄全部做備份文件,備份文件名為usr.tar。

  $ tar cvf usr.tar /home

例2:把/home目錄下包括它的子目錄全部做備份文件,並進行壓縮,備份文件名為usr.tar.gz 。

  $ tar czvf usr.tar.gz /home

例3:把usr.tar.gz這個備份文件還原並解壓縮。

  $ tar xzvf usr.tar.gz

例4:查看usr.tar備份文件的內容,並以分屏方式顯示在顯示器上。

  $ tar tvf usr.tar | more

  要將文件備份到一個特定的設備,只需把設備名作為備份文件名。

例5:用戶在/dev/fd0設備的軟盤中創建一個備份文件,並將/home 目錄中所有的文件都拷貝到備份文件中。

  $ tar cf /dev/fd0 /home

  要恢復設備磁盤中的文件,可使用xf選項:

  $ tar xf /dev/fd0

  如果用戶備份的文件大小超過設備可用的存貯空間,如軟盤,您可以創建一個多卷的tar備份文件。M選項指示tar命令提示您使用一個新的存貯設備,當使用M選項向一個軟驅進行存檔時,tar命令在一張軟盤已滿的時候會提醒您再放入一張新的軟盤。這樣您就可以把tar檔案存入幾張磁盤中。

  $ tar cMf /dev/fd0 /home

  要恢復幾張盤中的檔案,只要將第一張放入軟驅,然后輸入有x和M選項的tar命令。在必要時您會被提醒放入另外一張軟盤。

  $ tar xMf /dev/fd0

---------------------------------------------

gzip命令

減少文件大小有兩個明顯的好處,一是可以減少存儲空間,二是通過網絡傳輸文件時,可以減少傳輸的時間。gzip是在Linux系統中經常使用的一個對文件進行壓縮和解壓縮的命令,既方便又好用。

語法:gzip [選項] 壓縮(解壓縮)的文件名

  各選項的含義:

  -c 將輸出寫到標准輸出上,並保留原有文件。

  -d 將壓縮文件解壓。

  -l 對每個壓縮文件,顯示下列字段:

壓縮文件的大小(compressed)

未壓縮文件的大小(uncompressed)

壓縮比(ratio)

未壓縮文件的名字(uncompressed_name)

  -r 遞歸式地查找指定目錄並壓縮其中的所有文件或者是解壓縮。

  -t 測試,檢查壓縮文件是否完整。

  -v 對每一個壓縮和解壓的文件,顯示文件名和壓縮比。

  -num 用指定的數字num調整壓縮的速度,-1(--fast)表示最快壓縮方法(低壓縮比),-9(--best)表示最慢壓縮方法(高壓縮比)。系統缺省值為6。

假設一個目錄/home下有文件123  aaa  abc

例1:把/home目錄下的每個文件壓縮成.gz文件。

  $ cd /home

  $ gzip *

  $ ls

  123.gz  aaa.gz  abc.gz

例2:把例1中每個壓縮的文件解壓,並列出詳細的信息。

  $ gzip -dv *

123.gz: -50.0% -- replaced with 123 aaa.gz: -50.0% -- replaced with aaa abc.gz: -50.0% -- replaced with abc

  $ ls

  123  aaa  abc

例3:詳細顯示例1中每個壓縮的文件的信息,並不解壓。

  $ gzip -l *

         compressed        uncompressed  ratio uncompressed_name                  28                   4 -50.0% 123                  28                   4 -50.0% aaa                  28                   4 -50.0% abc                  84                  12 -416.7% (totals)

  $ ls

  123.gz  aaa.gz  abc.gz

例4:壓縮一個tar備份文件,如usr.tar,此時壓縮文件的擴展名為.tar.gz

  $ gzip usr.tar

  $ ls

  usr.tar.gz

---------------------------------------------

unzip命令

用MS Windows下的壓縮軟件winzip壓縮的文件如何在Linux系統下展開呢?可以用unzip命令,該命令用於解擴展名為.zip的壓縮文件。

語法:unzip [選項] 壓縮文件名.zip

  各選項的含義分別為:

  -x 文件列表 解壓縮文件,但不包括指定的file文件。

  -v 查看壓縮文件目錄,但不解壓。

  -t 測試文件有無損壞,但不解壓。

  -d 目錄 把壓縮文件解到指定目錄下。

  -z 只顯示壓縮文件的注解。

  -n 不覆蓋已經存在的文件。

  -o 覆蓋已存在的文件且不要求用戶確認。

  -j 不重建文檔的目錄結構,把所有文件解壓到同一目錄下。

例1:將壓縮文件text.zip在當前目錄下解壓縮。

  $ unzip text.zip

例2:將壓縮文件text.zip在指定目錄/tmp下解壓縮,如果已有相同的文件存在,要求unzip命令不覆蓋原先的文件。

  $ unzip -n text.zip -d /tmp

例3:查看壓縮文件目錄,但不解壓。

  $ unzip -v text.zip

---------------------------------------------

zgrep命令

這個命令的功能是在壓縮文件中尋找匹配的正則表達式,用法和grep命令一樣,只不過操作的對象是壓縮文件。如果用戶想看看在某個壓縮文件中有沒有某一句話,便可用zgrep命令。

 

轉自

Linux下tar bz gz等壓縮包的壓縮和解壓 - 雲+社區 - 騰訊雲
https://cloud.tencent.com/developer/article/1392923


免責聲明!

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



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