Linux 系統中,最常用的歸檔(打包)命令就是 tar,該命令可以將許多檔案一起保存到一個單獨的磁帶或磁盤中進行歸檔,不僅如此,該命令還可以從歸檔檔案中還原所需檔案,也就是打包的反程序,稱為解打包,
使用 tar 命令歸檔的包通常稱為 tar 包(tar 包檔案都是以“.tar”結尾的),
tar命令做打包操作
當 tar 命令用于打包操作時,該命令的基本格式為:
[root@localhost ~]#tar [選項] 源檔案或目錄
此命令常用的選項及各自的含義如表 1 所示,
| 選項 | 含義 |
|---|---|
| -c | 將多個檔案或目錄進行打包, |
| -A | 追加 tar 檔案到歸檔檔案, |
| -f 包名 | 指定包的檔案名,包的擴展名是用來給管理員識別格式的,所以一定要正確指定擴展名; |
| -v | 顯示打包檔案程序; |
需要注意的是,在使用 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 命令用于對 tar 包做解打包操作時,該命令的基本格式如下:
[root@localhost ~]#tar [選項] 壓縮包
當用于解打包時,常用的選項與含義如表 2 所示,
| 選項 | 含義 |
|---|---|
| -x | 對 tar 包做解打包操作, |
| -f | 指定要解壓的 tar 包的包名, |
| -t | 只查看 tar 包中有哪些檔案或目錄,不對 tar 包做解打包操作, |
| -C 目錄 | 指定解打包位置, |
| -v | 顯示解打包的具體程序, |
其實解打包和打包相比,只是把打包選項 "-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檔案包中檔案的詳細資訊
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 命令可以把一大堆的檔案和目錄打包成一個檔案,這對于備份檔案或是將幾個檔案組合成為一個檔案進行網路傳輸是非常有用的,
十年磨一劍轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/469773.html
標籤:Linux
上一篇:Linux磁盤和檔案系統知識總結
