Linux打包壓縮

 

zip 老了一些,但是所有系統都支持(.zip)。
格式
  zip 壓縮後的文件名 要被壓縮的文件 參數
參數
  -1                    壓縮比,1-9可選,9爲最大壓縮率。
  -c                    增加註釋。
  -d                    解壓出一個文件。
  -D                    不存儲文件的目錄信息。
  -f                    替換現有文件。 
  -F                    修復壓縮文件。
  -g                    增加文件到包內。
  -m                    增加文件到包內,並刪除源文件。

  -n                    不壓縮特定擴展名的文件。

  -q                    安靜模式。

  -r                    包括子文件夾。

  -t                    只壓縮指定日期後的文件。

  -T                    測試壓縮文件是否正常。

  -u                    更新改動過的文件和新文件。

  -v                    顯示詳細信息。

  -x                    不壓縮指定文件。

解壓使用unzip,參數類似。

gzip Linux上的老牌壓縮格式(.gz)。
格式
  gzip 壓縮後的文件名 參數 要被壓縮的文件
參數
 -a或--ascii  使用ASCII文字模式。
 -c或--stdout或--to-stdout  把壓縮後的文件輸出到標準輸出設備,不去更動原始文件。
 -d或--decompress或----uncompress  解開壓縮文件。
 -f或--force  強行壓縮文件。不理會文件名稱或硬連接是否存在以及該文件是否爲符號連接。
 -h或--help  在線幫助。
 -l或--list  列出壓縮文件的相關信息。
 -L或--license  顯示版本與版權信息。
 -n或--no-name  壓縮文件時,不保存原來的文件名稱及時間戳記。
 -N或--name  壓縮文件時,保存原來的文件名稱及時間戳記。
 -q或--quiet  不顯示警告信息。
 -r或--recursive  遞歸處理,將指定目錄下的所有文件及子目錄一併處理。
 -S<壓縮字尾字符串>或----suffix<壓縮字尾字符串>  更改壓縮字尾字符串。
 -t或--test  測試壓縮文件是否正確無誤。
 -v或--verbose  顯示指令執行過程。
 -V或--version  顯示版本信息。
 -<壓縮效率>  壓縮效率是一個介於1-9的數值,預設值爲"6",指定愈大的數值,壓縮效率就會愈高。
 --best  此參數的效果和指定"-9"參數相同。
 --fast  此參數的效果和指定"-1"參數相同。

tar 最常用的打包格式(.tar)
格式
  tar -cvf 壓縮後的文件名 要被壓縮的文件
參數:
-c :建立一個壓縮文件
-x :解開一個壓縮文件
-t :查看壓縮文件裏面的文件
 參數c/x/t不能同時使用。
-z :用 gzip 壓縮
-j :用 bzip2 壓縮
-v :詳細信息
-f :壓縮後的文件名,這個參數必須是最後一個參數
-p :使用原文件的原來屬性
-P :可以使用絕對路徑來壓縮
-N :比日期yyyy/mm/dd新的文件纔會被打包
--exclude FILE:在壓縮的過程中,不要將 FILE 打包

-------------在chinaitlab看到一個超簡單的摘錄瞭如下--------------------
  .tar
  解包: tar xvf FileName.tar
  打包:tar cvf FileName.tar DirName
  (注:tar是打包,不是壓縮!)
  ---------------------------------------------
  .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 DirName
  ---------------------------------------------
  .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 DirName
  ---------------------------------------------
  .bz
  解壓1:bzip2 -d FileName.bz
  解壓2:bunzip2 FileName.bz
  壓縮:未知
  .tar.bz
  解壓:tar jxvf FileName.tar.bz
  壓縮:未知
  ---------------------------------------------
  .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 a FileName.rar
  壓縮:r ar e FileName.rar
  
  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使用詳細-------------------------------------------

tar是“tape archive”(磁帶存檔)的簡稱,它出現在還沒有軟盤驅動器、硬盤和光盤驅動器的計算機早期階段。那時軟件的發行和備份都需要大卷的磁帶,計算機上運行的頭幾個程序中就得有一個是磁帶的閱讀程序。隨着時間的推移, tar命令逐漸變爲一個將很多文件進行存檔的工具,目前許多用於Linux操作系統的程序就是打包爲tar檔案文件的形式。

    tar 命令的格式是:

    tar [option] <file>;

    tar命令有很多參數,利用f選項、設備或文件的名字可以指示tar命令將檔案置於特定的設備或文件中。當爲tar的檔案創建一個文件時,這個文件名的擴展通常是如果指定了一個目錄名,那麼它所有的子目錄都會被包含在檔案之中。

    利用tar命令和f選項的格式如下所示:

    #tar opionsf  archive-name.tar directory-and-filenames

    要創建一個檔案應使用c選項,與f選項一起,c選項會在設備或文件中創建檔案,應在f選項的左邊輸入這一選項。在下例中,目錄mydir和它所有的子目錄都被存入文件myarch.tar中。

    #tar cf  myarch.tar  mydir

    如果想要改動已經存檔的目錄中的文件,可以使用u選項使tar更新檔案中的文件。tar比較每一個檔案文件與相應用戶目錄中文件最近一次修改的時間,然後將上一次存檔之後又被修改過的文件拷貝到檔案文件中去。在用戶目錄中新創建的文件也會被添加到檔案文件中。在下面的例子中,用戶用mydir目錄中最近被修改或添加的文件來對myarch.tar文件進行更新。

    #tar uf myarch.tar mydir

    如果想查看在一個檔案中存儲着哪些文件,可以使用tar命令和t選項。下面命令列出所有存儲在myarch.tar檔案中的文件:

    #tar tf myarch.tar

    要將文件備份到一個特定的設備,只須把設備名作爲檔案。在下面的例子中,用戶在/dev/fdo設備的軟盤中創建了一個檔案,並將mydir目錄中所有的文件都拷貝到檔案中。

    #tar cf/dev/fdo  mydir

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

    #tar xf/dev/fdo

    如果所備份的文件大小超過設備可用的存儲器,比如軟盤,此時就可以創建一個使用多個標號的tar檔案。當使用m選項向一個軟驅進行存檔時,tar命令在一張軟盤已滿的時候會提醒再放入一張新的軟盤。

    #tar cmf/dev/fdo  mydir

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

    #tar  xmf/dev/fdo

    tar操作不會對檔案文件實行壓縮操作。如果想壓縮檔案文件,可以指示tar激活gzip實用工具,在存檔之前對文件進行壓縮。利用z選項,tar在對文件存檔之前首先要使用gzip來壓縮文件。當恢復文件時,同樣的Z選項將激活gzip對文件解壓。

    #tar czf  myarch.tar mydir

    值得注意的是,壓縮檔案中的單個文件和整體壓縮檔案是不同的。通常檔案文件是爲了便於傳輸而把幾個文件組合成爲一個tar文件。爲了縮短傳輸時間,檔案應當越小越好,可以將其壓縮然後傳送壓縮後的版本。接收者可以對之解壓縮,然後恢復tar文件。在tar文件上使用gzip將會產生有.tar.gz擴展名的文件。擴展名.gz被加到被壓縮的gzip文件名之後。

    下面的例子創建了myarch.tar的一個壓縮的版本,它具有了.gz的擴展名。

    #gzip  myarch.tar
    #ls
    #myarch.tar.gz

    tar命令雖然有非常多的參數,但是使用起來並不困難,可以快速而又簡單地爲任何需要的子目錄生成檔案文件。

    首先,我們來建立一個有三個文件的子目錄,再建立一個有另外三個文件的子目錄,如下所示:

    # mkdir mydir
    #cd mydir
    # touch file1 file2 file3
    # mkdir mydir2
    #cd mydir2
    # touch file21 file22 file23
    #cd../..
    #tree mydir
    mydir
      file1
      file2
      file3
    mydir2
      file21
      file22
      file23

    現在已經有了一個子目錄和其中的文件,使用這個命令的c(生成)和f(文件)參數來生成一個tar檔案文件:

    # tar cf mydir.tar mydir
    # ls -l *.tar
    - r w - r - - r - - 1 bball u s e r s 10240 Jan 5 15 : 01 mydir. t a r

    請注意,原來的子目錄並沒有發生變化。在缺省的情況下,tar命令不會刪除原來的子目錄和文件。如果想看看命令執行的過程,可以使用v參數,如下所示:

    # tar cvf mydir.tar mydir
    mydir/
    mydir/file1
    mydir/file2
    mydir/file3
    mydir/mydir2/
    mydir/mydir2/file21
    mydir/mydir2/file22
    mydir/mydir2/file23

    tar命令在進行操作的時候,就會把正在添加到檔案文件中去的子目錄和文件的文件名顯示出來。使用w參數,即交互參數,這樣tar命令在執行的過程當中會詢問是否想加入每個文件。當想有選擇地備份內容不多的子目錄的時候,這樣就非常地方便,如下所示:

    # tar cwf mydir.tar mydir
    add mydir?y
    add mydir/file1?n
    add mydir/file2?y
    add mydir/file3?n
    add mydir/mydir2?y
    add mydir/mydir2/file21?y
    add mydir/mydir2/file22?n
    add mydir/mydir2/file23?y

    在上面的例子中,沒有把文件file1、file3和文件file22歸檔。可以使用tar命令的t參數列出檔案文件中的內容,f參數定義操作所使用的tar檔案文件,如下所示:

    # tar tf mydir.tar
    mydir/
    mydir/file2
    mydir/mydir2/
    mydir/mydir2/file21
    mydir/mydir2/file23

    需要注意的是,如果參數的順序放錯了,tar命令會顯示出錯信息並退出。

    下面就來看看如何來釋放整個的檔案文件或者其中的某一個文件。如果想釋放其中所有的文件,可以同時使用-x釋放參數和-f。爲了瞭解命令執行的過程,還可以加上-v參數:

    # tar xvf mydir.tar
    mydir/
    mydir/file2
    mydir/mydir2/
    mydir/mydir2/file21
    mydir/mydir2/file23

    如果只是想從檔案文件中釋放幾個文件的話,可以再次使用w參數:

    # tar xvwf mydir.tar
    extract mydir/?y
    mydir
    extract mydir/file2?y
    mydir/file2
    extract mydir/mydir2/?y
    mydir/mydir2/
    extract mydir/mydir2/file21?y
    mydir/mydir2/file21
    extract mydir/mydir2/file23?y
    mydir/mydir2/file23

    上例表明查看了檔案文件,並交互地釋放了文件。如果只想從檔案文件中釋放某一個文件,可以在命令行中指定這個文件。作爲示例,我先刪除了原始的mydir子目錄,然後使用一個空的子目錄進行如下操作:

    # tar xf mydir.tar mydir/mydir2/file23
    # tree mydir
    m y d i r
    - - mydir2
    - - file23
    1 directory, 1 file

    注意,正如所看到的只有一個文件被釋放出來。雖然tar命令不會覆蓋整個的子目錄,但是它會覆蓋掉那些有着相同文件名的文件。

    值得一提的是,還可以使用其它程序,如BRU-2000或者taper腳本程序來備份系統或者選定的文件和子目錄。OpenLinux操作系統也可以通過cron日程安排來自動進行文件的歸檔整理工作。

    建立cpio檔案文件

    cpio命令可以從tar或者cpio檔案文件中拷入或者拷出文件。因爲cpio命令和tar命令兼容,所以我這裏不再詳細介紹它如何工作。但是這個命令具備一些tar命令沒有的功能,如下所示:

    ◆ 支持cpio和tar兩種檔案文件格式;

    ◆ 支持許多老式磁帶數據格式;

    ◆ 能夠通過一個管道讀取文件的文件名。

    只有很少的Linux軟件包是以cpio格式發行的。如果對cpio命令的詳細情況感興趣的話,可以閱讀它的使用手冊。

    使用gzip壓縮文件

    gzip命令是用來壓縮文件的。它不僅可以用來壓縮大的、較少使用的文件以節省磁盤空間,還可以和tar命令一起構成Linux操作系統中比較流行的壓縮文件格式。據統計,gzip命令對文本文件有60%~70%的壓縮率。

    gzip命令的格式是:

    gzip [option] [file]

    gzip很容易使用。如果想壓縮某個文件或者磁帶檔案文件,可輸入下面的內容:

    # gzip mydir.tar

    在缺省的狀態下,gzip會壓縮文件、再加上一個.gz擴展名,然後刪除掉原來的文件。如果想解壓縮文件,可以使用gzip的對應程序命令gunzip或者gzip命令的-d解壓縮參數。但是必須保證這個用於解壓縮的文件有.gz(或者.Z、-gz、.z、-z、或者_z)擴展名,否則gzip命令和gunzip命令都會顯示出錯信息。如果想使用自己的擴展名,可以使用-S後綴參數,如下所示:

    # gzip -S .gzipped mydir.tar

    gzip還可以處理用zip命令、compress命令和pack命令壓縮的文件包。如果想在壓縮或者解壓縮的過程中看到更多的信息,可以使用-l列清單參數看到文件在被壓縮或解壓縮的時候的文件長度。在前一個例子中,壓縮完子目錄mydir之後,可以使用gzip命令按照下面的方法得到有關的數據:

    # gzip -l mydir.tar.gz
    compressed uncompr.ratio uncompressed_name
    312 21330 98.2% mydir.tar

    此外,gzip還有一個很有用的參數-t,可以用來測試壓縮文件的完整性。如果文件正常,gzip不會給出任何顯示。如果想看到OK這兩個字母,可以在測試某個文件時使用-tv參數。

    使用compress壓縮文件

    compress命令就像它的文件名那樣是用來壓縮文件的。這是Unix中出現得比較早的一個壓縮程序,它通過使用自適應的Lemple-Ziv編碼來縮小所指文件的大小。每一個文件將被一個帶有.Z擴展名的壓縮文件所代替,但文件的屬主關係、訪問時間和修改時間將保持不變。如果沒有指點文件,則接受標準輸入的文件進行壓縮並送到標準輸出。

    compress命令格式是:

    compress [option] [file]

    與compress對應的有一個解壓縮命令uncompress,其格式如下:

    uncompress [option] [file]

    它使“.Z”的壓縮文件恢復。

    compress和uncompress命令的選項如下:

    ◆-c 寫到標準輸出,不改變文件。

    ◆-f 強制壓縮,即使文件並不真正減小或.Z文件已經存在,也進行壓縮。

    ◆-v 顯示每一個被壓縮文件的縮小的百分比。

    下面舉例說明compress命令的用法:

    #compress file

    上面代碼表明將生成壓縮文件file.Z代替file,要解壓縮輸入:

    #uncompress file.Z

    注意,像使用gzip命令一樣,使用uncompress命令時必須給出一個帶有.Z擴展名的文件名,否則uncompress命令顯示出錯信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章