tar是UNIX/linux系統上的壓縮文件格式,是使用tar命令歸檔的包的文件格式。在Linux中,tar命令可以將許多文件一起保存到一個單獨的磁帶或磁盤中進行歸檔;該命令還可以從歸檔文件中還原所需文件,也就是打包的反過程,稱為解打包。
本教程操作環境:linux7.3系統、Dell G3電腦。
tar是Unix和類Unix系統上文件打包工具,可以將多個文件合并為一個文件,打包后的文件名亦為“tar”。tar代表未被壓縮的tar文件。已被壓縮的tar文件則追加壓縮文件的擴展名,如經過gzip壓縮后的tar文件,擴展名為“.tar.gz”。
tar是什么文件?
tar是UNIX/Linux系統上的壓縮文件格式,tar文件則是一種壓縮文件,在Linux系統中可以直接解壓使用這種壓縮文件。在Windows下也可以使用WinRAR等常見的解壓縮軟件打開。tar其實就相當于常見的rar和zip格式。
Linux tar打包命令詳解
? ?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 命令可以把一大堆的文件和目錄打包成一個文件,這對于備份文件或是將幾個文件組合成為一個文件進行網絡傳輸是非常有用的。
相關推薦:《Linux視頻教程》