歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> Linux文件與文件系統的壓縮與打包

Linux文件與文件系統的壓縮與打包

日期:2017/3/6 9:25:39   编辑:學習Linux

Linux文件與文件系統的壓縮與打包


Linux文件與文件系統的壓縮與打包


進來在學習Linux了,不過Linux的命令太多了,怕記不住所以使用博客記錄的方式來寫下自己的學習過程,以後忘記了還可以翻閱自己寫下的博客來查查:

  • Linux系統常見的壓縮命令
  • Compress
  • gzip,gcat
  • bzip2,bzcat
  • 打包命令:tar

Linux系統常見的壓縮命令

Linux的環境下,壓縮文件大多擴展名是*.tar, *.tar,*.gz, *.tgz, *.gz, *.Z, *.bz2,下面我們列出常見的壓縮文件擴展名:
*.Z—————>compress程序壓縮文件
*.gz—————>gzip程序壓縮的文件
*.bz2————–>bzip2程序壓縮的文件
*.tar—————>tar程序打包的數據,並沒有進行壓縮
*.tar.gz————>tar程序打包的文件,並且經過gzip進行壓縮處理。
*.tar.bz2———–>tar程序打包的文件,並且經過bzip2進行壓縮處理。

Linux系統常見的壓縮命令就是gzip與bzip2,至於compress已經不再流行了。gzip是由GNU計劃所開發出來的壓縮命令,該命令已經替換了compress。後來GNU有開發出bzip2這個壓縮比更好的壓縮命令。不過這些命令通常只能針對一個文件來壓縮與解壓縮,如此一來,每次壓縮都要一大堆文件,豈不是很煩人?此時打包軟件tar就很重要了。

Compress

compress已經非常老舊了,不過學習練練手還是可以的。現在的Linux distribution似乎已經沒有默認安裝了,所以練手時可以安裝ncompress這個軟件。

安裝ncompress

我這裡提示我已經安裝好了,所以基本上沒有做什麼處理,如果第一次安裝的話可能需要你輸入y,之後繼續安裝。
接下來看看如何使用compress命令。

[root@www ~]#compress [-rcv] 文件或目錄   <==這裡指壓縮
[root@www ~]#uncompress 文件名.Z          <==這裡指解壓縮
選項與參數:
-r : 可以連同目錄下的文件也同時給予壓縮。
-c : 將壓縮數據輸出成為standard output(輸出到屏幕)
-v : 可以顯示壓縮後的文件信息以及壓縮過程中的文件信息

compress壓縮文件

compress壓縮文件

compress解壓縮文件

compress解壓縮文件

解壓縮之後會發現man_db.conf.Z文件沒有,如果你想要保存該文件可以使用-c的語法。

gzip,zcat

gzip是使用最廣的壓縮命令了。目前gzip可以解壓compress、zip與gzip等壓縮軟件所壓縮的文件。接下來看下語法:

[root@www ~]#gzip [-cdtv#] 文件名
[root@www ~]#zcat 文件名.gz
參數:
-c : 將壓縮的數據輸出到屏幕上,可通過數據流重定向來處理;
-d : 解壓縮需要用到的參數;
-t : 可用來校驗一個壓縮文件的一致性,看看文件是否有錯誤;
-v : 顯示原文件/壓縮文件的壓縮比等信息;
-# : 壓縮等級,-1最快,但其壓縮比較差,-9最慢,但壓縮比最好,默認-6.

gzip壓縮文件

gzip壓縮文件

zcat讀取壓縮文件內容

zcat讀取壓縮文件內容

gzip解壓縮文件

gzip解壓縮文件

bzip2,bzcat

gzip是為了替代compress而成立的,而bzip2則是為了取代gzip並提供更佳的壓縮比而來的,下面來說下具體的用法:

[root@www ~]#bzip2[-cdkzv#] 文件名
[root@www ~]#bzcat 文件名.bz2
參數:
-c : 將壓縮的數據輸出到屏幕上;
-d : 解壓縮需要用到的參數;
-k : 保留原文件,而不會刪除原始的文件;
-z : 壓縮的參數;
-v : 顯示原文件/壓縮文件的壓縮比等信息;
-# : 壓縮等級,-1最快,但其壓縮比較差,-9最慢,但壓縮比最好.

bzip2壓縮與bzcat顯示壓縮文件內容

這裡寫圖片描述

打包命令:tar

雖然gzip與bzip2也能針對目錄來進行壓縮,不過這兩個目錄的壓縮指的是將目錄內的所有文件“分別”進行壓縮的操作。
這種將多個文件或目錄包成一個大文件的命令功能,我們可以稱呼它是一種“打包命令”。Linux下面就是鼎鼎大名的tar。tar可以將多個目錄或文件打包成一個大文件,同時還可以通過gzip/bzip2的支持,將該文件同時進行壓縮。
tar的參數非常多,我們只講幾個常用的參數,更多參數可以自行man tar查詢。

[root@www ~]#tar [-j|-z] [cv] [-f 新建的文件名] filename... <==打包與壓縮
[root@www ~]#tar [-j|-z][tv] [-f 新建的文件名]              <==查看文件名
[root@www ~]#tar [-j|-z] [xv] [-f 新建的文件名] [-C 目錄]    <==解壓縮
參數:
-c : 新建打包文件,可搭配-v來查看過程中被打包的文件名(filename).
-t : 查看打包文件的內容含有哪些文件名,重點在查看文件名.
-x : 解打包或解壓縮的功能,可以搭配-C(大寫)在特別目錄中解開.特別留意的是,-c,-t,-x不可同時出現在一串命令行中.
-j : 通過bzip2的支持進行壓縮/解壓縮,此時文件名最好是*.tar.bz2.
-z : 通過gzip的支持進行壓縮/解壓縮,此時文件名最好是*.tar.gz.
-v : 在壓縮/解壓縮的過程中,將正在處理的文件名顯示出來.
-f filename : -f後面要接被處理的文件名。建議-f單獨寫一個參數。
-C 目錄 : 這個參數用在解壓縮時,若要在特定目錄解壓縮,可以使用這個參數.
-p : 保留備份數據的原本權限與屬性,通常用於備份(-c)重要的配置文件.
-P : 保留決定路徑,即允許備份數據中含有根目錄存在之意.
--exclude=FILE : 在壓縮的過程中,不要將FILE打包.

其實最簡單的使用tar就只要記憶下面的方式即可:
- 壓縮 : tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱。
- 查詢 : tar -jtv -f filename.tar.bz2
- 解壓縮 : tar -jxv -f filename.tar.bz2 -C 欲解壓的目錄

那麼filename.tar.bz2是我們自定義的文件名,tar並不會主動產生創建的文件名。我們要自定義。所以擴展名就很重要了。如果不加[-j|-z]的話,文件名最好取為.tar即可。如果是-j參數,代表有bzip2的支持,因此文件名最好就取為.tar.bz2,因為bzip2會產生.bz2的擴展名。至於如果是-z參數,代表了gzip的支持,因此文件名最好就取為*.tar.gz。

  • 使用tar加入-j或-z的參數備份/etc/目錄

    使用tar加入-j或-z的參數備份/etc/目錄

    這裡寫圖片描述

    兩種壓縮方式的比較

看到兩種壓縮的方式了嗎,bzip2壓縮確實比gzip壓縮率高,所以推薦用bzip2來進行備份。

  • 查詢tar文件的數據內容(可查看文件名),與備份文件名是否有根目錄的意義
  • 要查看文件名非常簡單,可以這樣做:

    查詢tar文件的數據內容

  • 將解壓縮的文件解壓到指定位置(-C參數的應用)
    將解壓縮的文件解壓到指定位置

  • 僅解開單個文件的方法
    首先我們需要使用-jtv找到你要的文件名,然後將該文件名解開即可。
    1.先找到我們要的文件名,假設解開shadow文件。

    僅解開單個文件的方法

    2.將該文件解開。語法和實際如下:

    解壓指定的文件操作

  • 打包某目錄,但不包含該目錄下的某些文件的做法(–exclude=FILE)
    假設我們想要打包/etc /root 這幾個重要的目錄,但卻不想要打包/root/etc*開頭的文件,因為該文件我們都是剛才已經創建的備份文件。而且假設這個新的打包文件要放置��為/root/system.tar.bz2,當然這個文件不要自己打包自己(因為這個文件放置在/root下面),此時我們可以通過–exclude的幫忙。so you can do that:
[root@www ~]#tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* \
>--exclude=/root/system.tar.bz2 /etc /root

詳情可參見<鳥哥的Linux私房菜>第九章 ->Linux文件與文件系統的壓縮與打包

鳥哥的Linux私房菜-基礎學習篇(第四版)高清完整書簽PDF版 下載見

本文永久更新鏈接地址:

http://xxxxxx/Linuxjc/1147434.html TechArticle

Copyright © Linux教程網 All Rights Reserved