linux學習筆記(9)

來源:互聯網
上載者:User

linux下查看ip的命令:ifconfig。

 

在Linux中如何對檔案進行壓縮與解壓

用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]

    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]

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

    uncompress [option]

    它使“.Z”的壓縮檔恢複。

    compress和uncompress命令的選項如下:

    ◆-c 寫到標準輸出,不改變檔案。

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

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

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

    #compress file

    上面代碼錶明將產生壓縮檔file.Z代替file,要解壓縮輸入:

    #uncompress file.Z

    注意,像使用gzip命令一樣,使用uncompress命令時必須給出一個帶有.Z副檔名的檔案名稱,否則uncompress命令顯示出錯資訊。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.