在linux中,打包指的是一個檔案或目錄的集合,而這個集合被儲存在一個檔案中;簡單來說,打包是指將一大堆檔案或目錄變成一個總的檔案。打包檔案沒有經過壓縮,因此它佔用的空間是其中所有檔案和目錄的總和。
本教學操作環境:linux7.3系統、Dell G3電腦。
linux打包是什麼意思
打包,也稱為歸檔,指的是一個檔案或目錄的集合,而這個集合被儲存在一個檔案中。歸檔檔案沒有經過壓縮,因此,它佔用的空間是其中所有檔案和目錄的總和。通常,歸檔總是會和系統(資料)備份聯絡在一起。
注:打包和壓縮不是一個概念。打包是指將一大堆檔案或目錄變成一個總的檔案;壓縮則是將一個大的檔案通過一些壓縮演演算法變成一個小檔案。
壓縮是指利用演演算法將檔案進行處理,已達到保留最大檔案資訊,而讓檔案體積變小的目的。其基本原理為,通過查詢檔案內的重複位元組,建立一個相同位元組的詞典檔案,並用一個程式碼錶示。比如說,在壓縮檔案中,有不止一處出現了 「C語言中文網」,那麼,在壓縮檔案時,這個詞就會用一個程式碼錶示並寫入詞典檔案,這樣就可以實現縮小檔案體積的目的。
Linux 下,常用歸檔命令有 2 個,分別是 tar 和 dd(相對而言,tar 的使用更為廣泛)。當然,tar 命令也可以作為壓縮命令,也很常用。下面就聊聊tar打包命令。
Linux tar打包命令詳解
Linux 系統中,最常用的歸檔(打包)命令就是 tar,該命令可以將許多檔案一起儲存到一個單獨的磁帶或磁碟中進行歸檔。不僅如此,該命令還可以從歸檔檔案中還原所需檔案,也就是打包的反過程,稱為解打包。
使用 tar 命令歸檔的包通常稱為 tar 包(tar 包檔案都是以「.tar」結尾的)。
當 tar 命令用於打包操作時,該命令的基本格式為:
[root@localhost ~]#tar [選項] 原始檔或目錄
登入後複製
此命令常用的選項及各自的含義如表 1 所示。
需要注意的是,在使用 tar 命令指定選項時可以不在選項前面輸入「-」。例如,使用「cvf」選項和 「-cvf」起到的作用一樣。
下面給大家舉幾個例子,一起看看如何使用 tar 命令打包檔案和目錄。
【例 1】打包檔案和目錄。
[root@localhost ~]# tar -cvf anaconda-ks.cfg.tar anaconda-ks.cfg
#把anacondehks.cfg打包為 anacondehks.cfg.tar檔案
登入後複製
選項 「-cvf」 一般是習慣用法,記住打包時需要指定打包之後的檔名,而且要用 「.tar」 作為擴充套件名。打包目錄也是如此:
[root@localhost ~]# ll -d test/
drwxr-xr-x 2 root root 4096 6月 17 21:09 test/
#test是我們之前的測試目錄
[root@localhost ~]# tar -cvf test.tar test/
test/
test/test3
test/test2
test/test1
#把目錄打包為test.tar檔案
tar命令也可以打包多個檔案或目錄,只要用空格分開即可。例如:
[root@localhost ~]# tar -cvf ana.tar anaconda-ks.cfg /tmp/
#把anaconda-ks.cfg檔案和/tmp目錄打包成ana.tar檔案包
登入後複製
【例 2】打包並壓縮目錄。
首先宣告一點,壓縮命令不能直接壓縮目錄,必須先用 tar 命令將目錄打包,然後才能用 gzip 命令或 bzip2 命令對打包檔案進行壓縮。例如:
[root@localhost ~]#ll -d test test.tar
drwxr-xr-x 2 root root 4096 6月 17 21:09 test
-rw-r--r-- 1 root root 10240 6月 18 01:06 test.tar
#我們之前已經把test目錄打包成test.tar檔案
[root@localhost ~]# gzip test.tar
[root@localhost ~]# ll test.tar.gz
-rw-r--r-- 1 root root 176 6月 18 01:06 test.tar.gz
#gzip命令會把test.tar壓縮成test.tar.gz
登入後複製
當 tar 命令用於對 tar 包做解打包操作時,該命令的基本格式如下:
[root@localhost ~]#tar [選項] 壓縮包
登入後複製
當用於解打包時,常用的選項與含義如表 2 所示。
其實解打包和打包相比,只是把打包選項 「-cvf」 更換為 「-xvf」。我們來試試:
[root@localhost ~]# tar -xvf anaconda-ks.cfg. tar
#解打包到當前目錄下
登入後複製
如果使用 「-xvf」 選項,則會把包中的檔案解壓到當前目錄下。如果想要指定解壓位置,則需要使用 「-C(大寫)」 選項。例如:
[root@localhost ~]# tar -xvf test.tar -C /tmp
#把檔案包test.tar解打包到/tmp/目錄下
登入後複製
如果只想檢視檔案包中有哪些檔案,則可以把解打包選項 「-x」 更換為測試選項 「-t」。例如:
[root@localhost ~]# tar -tvf test.tar
drwxr-xr-x root/root 0 2016-06-17 21:09 test/
-rw-r-r- root/root 0 2016-06-17 17:51 test/test3
-rw-r-r- root/root 0 2016-06-17 17:51 test/test2
-rw-r-r- root/root 0 2016-06-17 17:51 test/test1
#會用長格式顯示test.tar檔案包中檔案的詳細資訊
登入後複製
你可能會覺得 Linux 實在太不智慧了,一個打包壓縮,居然還要先打包成 「.tar」 格式,再壓縮成 「.tar.gz」 或 「.tar.bz2」 格式。其實 tar 命令是可以同時打包壓縮的,前面的講解之所打包和壓縮分開,是為了讓大家瞭解在 Linux 中打包和壓縮的不同。
當 tar 命令同時做打包壓縮的操作時,其基本格式如下:
[root@localhost ~]#tar [選項] 壓縮包 原始檔或目錄
登入後複製
此處常用的選項有以下 2 個,分別是:
-z:壓縮和解壓縮 「.tar.gz」 格式;
-j:壓縮和解壓縮 ".tar.bz2"格式。
【例 1】壓縮與解壓縮 ".tar.gz"格式。
[root@localhost ~]# tar -zcvf tmp.tar.gz /tmp/
#把/temp/目錄直接打包壓縮為".tar.gz"格式,通過"-z"來識別格式,"-cvf"和打包選項一致
登入後複製
解壓縮也只是在解打包選項 「-xvf」 前面加了一個 「-z」 選項。
[root@localhost ~]# tar -zxvf tmp.tar.gz
#解壓縮與解打包".tar.gz"格式
登入後複製
前面講的選項 「-C」 用於指定解壓位置、「-t」 用於檢視壓縮包內容,在這裡同樣適用。
【例 2】壓縮與解壓縮 「.tar.bz2」 格式。
和".tar.gz"格式唯一的不同就是"-zcvf"選項換成了 「-jcvf」,如下所示:
[root@localhost ~]# tar -jcvf tmp.tar.bz2 /tmp/
#打包壓縮為".tar.bz2"格式,注意壓縮包檔名
[root@localhost ~]# tar -jxvf tmp.tar.bz2
#解壓縮與解打包".tar.bz2"格式
登入後複製
把檔案直接壓縮成".tar.gz"和".tar.bz2"格式,才是 Linux 中最常用的壓縮方式,這是大家一定要掌握的壓縮和解壓縮方法。
tar 命令最初被用來在磁帶上建立備份,現在可以在任何裝置上建立備份。利用 tar 命令可以把一大堆的檔案和目錄打包成一個檔案,這對於備份檔案或是將幾個檔案組合成為一個檔案進行網路傳輸是非常有用的。
相關推薦:《Linux視訊教學》
以上就是linux打包是什麼意思的詳細內容,更多請關注TW511.COM其它相關文章!