Linux tar壓縮命令:打包與解打包命令

2020-07-16 10:04:33
".tar"格式的打包和解打包都使用 tar 命令,區別只是選項不同。我們先看看 tar 命令的基本資訊。
  • 命令名稱:tar。
  • 英文原意:tar。
  • 所在路徑:/bin/tar。
  • 執行許可權:所有使用者。
  • 功能描述:打包與解打包命令。

打包命令格式

[[email protected] ~]#tar [選項] [-f 壓縮包名] 原始檔或目錄

選項:
  • -c:打包;
  • -f:指定壓縮包的檔名。壓縮包的擴充套件名是用來給管理員識別格式的,所以一定要正確指定擴充套件名;
  • -v:顯示打包檔案過程;

【例 1】基本使用。
我們先打包一個檔案練練手。

[[email protected] ~]# tar -cvf anaconda-ks.cfg.tar anaconda-ks.cfg
#把anacondehks.cfg打包為 anacondehks.cfg.tar檔案

選項"-cvf"一般是習慣用法,記住打包時需要指定打包之後的檔名,而且要用".tar"作為擴充套件名。那打包目錄呢?我們也試試:

[[email protected] ~]# ll -d test/
drwxr-xr-x 2 root root 4096 6月 17 21:09 test/
#test是我們之前的測試目錄
[[email protected] ~]# tar -cvf test.tar test/
test/
test/test3
test/test2
test/test1
#把目錄打包為test.tar檔案
tar命令也可以打包多個檔案或目錄,只要用空格分開即可。例如:
[[email protected] ~]# tar -cvf ana.tar anaconda-ks.cfg /tmp/
#把anaconda-ks.cfg檔案和/tmp目錄打包成ana.tar檔案包


【例 2】打包壓縮目錄。
我們已經解釋過了,壓縮命令不能直接壓縮目錄,我們就先用 tar 命令把目錄打成封包,然後再用 gzip 命令或 bzip2 命令壓縮。例如:

[[email protected] ~]#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檔案
[[email protected] ~]# gzip test.tar
[[email protected] ~]# ll test.tar.gz
-rw-r--r-- 1 root root 176 6月 18 01:06 test.tar.gz
#gzip命令會把test.tar壓縮成test.tar.gz
[[email protected] ~]# gzip -d test.tar.gz
#解壓縮,把test.tar.gz解壓縮為test.tar
[[email protected] ~]# bzip2 test.tar
[[email protected] ~]# ll test.tar.bz2
-rw-r--r-- 1 root root 164 6月 18 01:06 test.tar.bz2
#bzip2命令會把test.tar壓縮為 test.tar.bz2格式

解打包命令格式

".tar"格式的解打包也需要使用 tar 命令,但是選項不太一樣。命令格式如下:

[[email protected] ~]#tar [選項] 壓縮包

選項:
  • -x:解打包;
  • -f:指定壓縮包的檔名;
  • -v:顯示打包檔案過程;
  • -t:測試,就是不解打包,只是査看包中有哪些檔案;
  • -C 目錄:指定解打包位置;

其實解打包和打包相比,只是把打包選項"-cvf"更換為"-xvf"。我們來試試:

[[email protected] ~]# tar -xvf anaconda-ks.cfg. tar
#解打包到當前目錄下

如果使用"-xvf"選項,則會把包中的檔案解壓到當前目錄下。如果想要指定解壓位置,則需要使用"-C(大寫)"選項。例如:

[[email protected] ~]# tar -xvf test.tar -C /tmp
#把檔案包test.tar解打包到/tmp/目錄下

如果只想査看檔案包中有哪些檔案,則可以把解打包選項"-x"更換為測試選項"-t"。例如:

[[email protected] ~]# 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.gz"和".tar.bz2" 格式

你可能會覺得 Linux 實在太不智慧了,一個打包壓縮,居然還要先打包成".tar"格式,再壓縮成".tar.gz"或".tar.bz2"格式。其實 tar 命令是可以同時打包壓縮的,前面的講解之所打包和壓縮分開,是為了讓大家了解在 Linux 中打包和壓縮的不同。

使用 tar 命令直接打包壓縮。命令格式如下:

[[email protected] ~]#tar [選項] 壓縮包 原始檔或目錄

選項:
  • -z:壓縮和解壓縮 ".tar.gz"格式
  • -j:壓縮和街壓縮 ".tar.bz2"格式

【例 1】壓縮與解壓縮 ".tar.gz"格式。
我們先來看看如何壓縮".tar.gz"格式:

[[email protected] ~]# tar -zcvf tmp.tar.gz /tmp/
#把/temp/目錄直接打包壓縮為".tar.gz"格式,通過"-z"來識別格式,"-cvf"和打包選項一致


解壓縮也只是在解打包選項"-xvf"前面加了一個"-z"選項。

[[email protected] ~]# tar -zxvf tmp.tar.gz
#解壓縮與解打包".tar.gz"格式

前面講的選項"-C"用於指定解壓位置、"-t"用於査看壓縮包內容,在這裡同樣適用。

【例 2】壓縮與解壓縮".tar.bz2"格式。
和".tar.gz"格式唯一的不同就是"-zcvf"選項換成了 "-jcvf"。

[[email protected] ~]# tar -jcvf tmp.tar.bz2 /tmp/
#打包壓縮為".tar.bz2"格式,注意壓縮包檔名
[[email protected] ~]# tar -jxvf tmp.tar.bz2
#解壓縮與解打包".tar.bz2"格式

把檔案直接壓縮成".tar.gz"和".tar.bz2"格式,才是 Linux 中最常用的壓縮方式,這是大家一定要掌握的壓縮和解壓縮方法。