在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打包是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!