主頁(yè) > 知識(shí)庫(kù) > 在Linux系統(tǒng)中使用tar命令壓縮和解壓文件的教程

在Linux系統(tǒng)中使用tar命令壓縮和解壓文件的教程

熱門(mén)標(biāo)簽:怎么查看地圖標(biāo)注的地點(diǎn) 大連企業(yè)電銷(xiāo)機(jī)器人線路 岑溪電銷(xiāo)機(jī)器人 優(yōu)邁系統(tǒng)外呼顯示亂層 上海電銷(xiāo)卡外呼系統(tǒng)供應(yīng)商 電銷(xiāo)機(jī)器人錄音用什么軟件 義烏市400電話辦理 布谷電銷(xiāo)機(jī)器人價(jià)格 營(yíng)銷(xiāo)智能外呼系統(tǒng)口碑推薦

linux中的tar命令

tar(磁帶歸檔)命令是linux系統(tǒng)中被經(jīng)常用來(lái)將文件存入到一個(gè)歸檔文件中的命令。

其常見(jiàn)的文件擴(kuò)展包括:.tar.gz 和 .tar.bz2, 分別表示通過(guò)了gzip或bzip算法進(jìn)一步進(jìn)行了壓縮。

在本教程中我們會(huì)管中窺豹一下在linux桌面或服務(wù)器版本中使用tar命令來(lái)處理一些創(chuàng)建和解壓歸檔文件的日常工作的例子。
使用tar命令

tar命令在大部分linux系統(tǒng)默認(rèn)情況下都是可用的,所以你不用單獨(dú)安裝該軟件。

    tar命令具有兩個(gè)壓縮格式,gzip和bzip,該命令的“z”選項(xiàng)用來(lái)指定gzip,“j”選項(xiàng)用來(lái)指定bzip。同時(shí)也可以創(chuàng)建非壓縮歸檔文件。

1.解壓一個(gè)tar.gz歸檔

一般常見(jiàn)的用法是用來(lái)解壓歸檔文件,下面的命令將會(huì)把文件從一個(gè)tar.gz歸檔文件中解壓出來(lái)。

   

復(fù)制代碼
代碼如下:
$ tar -xvzf tarfile.tar.gz

這里對(duì)這些參數(shù)做一個(gè)簡(jiǎn)單解釋-

  •     x - 解壓文件
  •     v - 冗長(zhǎng)模式,在解壓每個(gè)文件時(shí)打印出文件的名稱(chēng)。
  •     z - 該文件是一個(gè)使用 gzip 壓縮的文件。
  •     f - 使用接下來(lái)的tar歸檔來(lái)進(jìn)行操作。

這些就是一些需要記住的重要選項(xiàng)。

解壓 tar.bz2/bzip 歸檔文件

具有bz2擴(kuò)展名的文件是使用bzip算法進(jìn)行壓縮的,但是tar命令也可以對(duì)其進(jìn)行處理,但是需要通過(guò)使用“j”選項(xiàng)來(lái)替換“z”選項(xiàng)。

   

復(fù)制代碼
代碼如下:
$ tar -xvjf archivefile.tar.bz2

2.將文件解壓到一個(gè)指定的目錄或路徑

為了將文件解壓到一個(gè)指定的目錄中,使用“-C”選項(xiàng)來(lái)指定路徑,此處的“C”是大寫(xiě)“C”。

   

復(fù)制代碼
代碼如下:
$ tar -xvzf abc.tar.gz -C /opt/folder/

然后,首先需要確認(rèn)目標(biāo)目錄是否存在,畢竟tar命令并不會(huì)為你創(chuàng)建目錄,所以如果目標(biāo)目錄不存在的情況下該命令會(huì)失敗。
3. 提取出單個(gè)文件

為了從一個(gè)歸檔文件中提取出單個(gè)文件,只需要將文件名按照以下方式將其放置在命令后面。

   

復(fù)制代碼
代碼如下:
$ tar -xz -f abc.tar.gz "./new/abc.txt"

在上述命令中,可以按照以下方式來(lái)指定多個(gè)文件。

   

復(fù)制代碼
代碼如下:
$ tar -xz -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"

4.使用通配符來(lái)解壓多個(gè)文件

通配符可以用來(lái)解壓于給定通配符匹配的一批文件,例如所有以".txt"作為擴(kuò)展名的文件。

   

復(fù)制代碼
代碼如下:
$ tar -xz -f abc.tar.gz --wildcards "*.txt"

5. 列出并檢索tar歸檔文件中的內(nèi)容

如果你僅僅想要列出而不是解壓tar歸檔文件的中的內(nèi)容,使用“-t”(test)選項(xiàng), 下面的命令用來(lái)打印一個(gè)使用gzip壓縮過(guò)的tar歸檔文件中的內(nèi)容。

   

復(fù)制代碼
代碼如下:
$ tar -tz -f abc.tar.gz
./new/
./new/cde.txt
./new/subdir/
./new/subdir/in.txt
./new/abc.txt
...

可以將輸出通過(guò)管道定向到grep來(lái)搜索一個(gè)文件,或者定向到less命令來(lái)瀏覽內(nèi)容列表。 使用"v"冗長(zhǎng)選項(xiàng)將會(huì)打印出每個(gè)文件的額外詳細(xì)信息。

對(duì)于 tar.bz2/bzip文件,需要使用"j"選項(xiàng)。

結(jié)合上述的命令和grep命令來(lái)檢索歸檔文件,如下所示。簡(jiǎn)單吧!

   

復(fù)制代碼
代碼如下:
$ tar -tvz -f abc.tar.gz | grep abc.txt
-rw-rw-r-- enlightened/enlightened 0 2015-01-13 11:40 ./new/abc.txt

6.創(chuàng)建一個(gè)tar/tar.gz歸檔文件

現(xiàn)在我們已經(jīng)學(xué)過(guò)了如何解壓一個(gè)tar歸檔文件,是時(shí)候開(kāi)始創(chuàng)建一個(gè)新的tar歸檔文件了。tar命令可以用來(lái)將所選的文件或整個(gè)目錄放入到一個(gè)歸檔文件中,以下是相應(yīng)的樣例。

下面的命令使用一個(gè)目錄來(lái)創(chuàng)建一個(gè)tar歸檔文件,它會(huì)將該目錄中所有的文件和子目錄都加入到歸檔文件中。

   

復(fù)制代碼
代碼如下:
$ tar -cvf abc.tar ./new/
./new/
./new/cde.txt
./new/abc.txt

上述命令不會(huì)創(chuàng)建一個(gè)壓縮的的歸檔文件,只是一個(gè)普通的歸檔文件,只是將多個(gè)文件放入到一個(gè)歸檔文件中并沒(méi)有真正地壓縮每個(gè)文件。

為了使用壓縮,可以分別使用“z”或“j”選項(xiàng)進(jìn)行g(shù)zip或bzip壓縮算法。

   

復(fù)制代碼
代碼如下:
$ tar -cvzf abc.tar.gz ./new/

    文件的擴(kuò)展名其實(shí)并不真正有什么影響。“tar.gz” 和“tgz”是gzip壓縮算法壓縮文件的常見(jiàn)擴(kuò)展名。 “tar.bz2”和“tbz”是bzip壓縮算法壓縮文件的常見(jiàn)擴(kuò)展名(LCTT 譯注:歸檔是否是壓縮的和采用哪種壓縮方式并不取決于其擴(kuò)展名,擴(kuò)展名只是為了便于辨識(shí)。)。

7. 在添加文件之前進(jìn)行確認(rèn)

一個(gè)有用的選項(xiàng)是“w”,該選項(xiàng)使得tar命令在添加每個(gè)文件到歸檔文件之前來(lái)讓用戶進(jìn)行確認(rèn),有時(shí)候這會(huì)很有用。

使用該選項(xiàng)時(shí),只有用戶輸入“y”時(shí)的文件才會(huì)被加入到歸檔文件中,如果你不輸入任何東西,其默認(rèn)表示是一個(gè)“n”。

   

復(fù)制代碼
代碼如下:
# 添加指定文件
$ tar -czw -f abc.tar.gz ./new/*
add ‘./new/abc.txt’?y
add ‘./new/cde.txt’?y
add ‘./new/newfile.txt’?n
add ‘./new/subdir’?y
add ‘./new/subdir/in.txt’?n
#現(xiàn)在列出所有被加入的文件
$ tar -t -f abc.tar.gz
./new/abc.txt
./new/cde.txt
./new/subdir/

8. 加入文件到存在的歸檔文件中

“r”選項(xiàng)可以被用來(lái)將文件加入到已存在的歸檔文件中,而不用創(chuàng)建一個(gè)新的歸檔文件,下面是一個(gè)簡(jiǎn)單的樣例:

   

復(fù)制代碼
代碼如下:
$ tar -rv -f abc.tar abc.txt

    文件并不能加入到已壓縮的歸檔文件中(gz 或 bzip)。文件只能被加入到普通的歸檔文件中。

9. 將文件加入到壓縮的歸檔文件中(tar.gz/tar.bz2)

之前已經(jīng)提到了不可能將文件加入到已壓縮的歸檔文件中,然而依然可以通過(guò)簡(jiǎn)單的一些把戲來(lái)完成。使用gunzip命令來(lái)解壓縮歸檔文件,然后將文件加入到歸檔文件中后重新進(jìn)行壓縮。

   

復(fù)制代碼
代碼如下:
$ gunzip archive.tar.gz
$ tar -rf archive.tar ./path/to/file
$ gzip archive.tar

對(duì)于bzip文件分別使用bzip2和bunzip2。
10.通過(guò)tar來(lái)進(jìn)行備份

一個(gè)真實(shí)的場(chǎng)景是在固定的時(shí)間間隔內(nèi)來(lái)備份目錄,tar命令可以通過(guò)cron調(diào)度來(lái)實(shí)現(xiàn)這樣的一個(gè)備份,以下是一個(gè)樣例 :

   

復(fù)制代碼
代碼如下:
$ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/

使用cron來(lái)運(yùn)行上述的命令會(huì)保持創(chuàng)建類(lèi)似以下名稱(chēng)的備份文件 :'archive-20150218.tar.gz'。

當(dāng)然,需要確保日益增長(zhǎng)的歸檔文件不會(huì)導(dǎo)致磁盤(pán)空間的溢出。
11. 在創(chuàng)建歸檔文件時(shí)進(jìn)行驗(yàn)證

"W"選項(xiàng)可以用來(lái)在創(chuàng)建歸檔文件之后進(jìn)行驗(yàn)證,以下是一個(gè)簡(jiǎn)單例子。

   

復(fù)制代碼
代碼如下:
$ tar -cvW -f abc.tar ./new/
./new/
./new/cde.txt
./new/subdir/
./new/subdir/in.txt
./new/newfile.txt
./new/abc.txt
Verify ./new/
Verify ./new/cde.txt
Verify ./new/subdir/
Verify ./new/subdir/in.txt
Verify ./new/newfile.txt
Verify ./new/abc.txt

需要注意的是驗(yàn)證動(dòng)作不能在壓縮過(guò)的歸檔文件上進(jìn)行,只能在非壓縮的tar歸檔文件上執(zhí)行。

這次就先到此為止,可以通過(guò)“man tar”命令來(lái)查看tar命令的的手冊(cè)。

標(biāo)簽:青島 大興安嶺 樂(lè)山 六安 大慶 周口 遼寧 大理

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在Linux系統(tǒng)中使用tar命令壓縮和解壓文件的教程》,本文關(guān)鍵詞  在,Linux,系統(tǒng),中,使用,tar,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在Linux系統(tǒng)中使用tar命令壓縮和解壓文件的教程》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于在Linux系統(tǒng)中使用tar命令壓縮和解壓文件的教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章