Linux 中建立和解壓文件的11個 tar 命令
Linux中的tar命令
tar(磁帶歸檔)命令是linux系統中被經常用來將檔案存入到一個歸檔檔案中的命令。
其常見的檔案擴充套件包括:.tar.gz 和 .tar.bz2, 分別表示通過了gzip或bzip演算法進一步進行了壓縮。
在本教程中我們會管中窺豹一下在linux桌面或伺服器版本中使用tar命令來處理一些建立和解壓歸檔檔案的日常工作的例子。
使用tar命令
tar命令在大部分linux系統預設情況下都是可用的,所以你不用單獨安裝該軟體。
tar命令具有兩個壓縮格式,gzip和bzip,該命令的“z”選項用來指定gzip,“j”選項用來指定bzip。同時也可以建立非壓縮歸檔檔案。
1.解壓一個tar.gz歸檔
一般常見的用法是用來解壓歸檔檔案,下面的命令將會把檔案從一個tar.gz歸檔檔案中解壓出來。
$ tar -xvzf tarfile.tar.gz
這裡對這些引數做一個簡單解釋-
x – 解壓檔案
v – 冗長模式,在解壓每個檔案時列印出檔案的名稱。
z – 該檔案是一個使用 gzip 壓縮的檔案。
f – 使用接下來的tar歸檔來進行操作。
這些就是一些需要記住的重要選項。
解壓 tar.bz2/bzip 歸檔檔案
具有bz2副檔名的檔案是使用bzip演算法進行壓縮的,但是tar命令也可以對其進行處理,但是需要通過使用“j”選項來替換“z”選項。
$ tar -xvjf archivefile.tar.bz2
2.將檔案解壓到一個指定的目錄或路徑
為了將檔案解壓到一個指定的目錄中,使用“-C”選項來指定路徑,此處的“C”是大寫“C”。
$ tar -xvzf abc.tar.gz -C /opt/folder/
然後,首先需要確認目標目錄是否存在,畢竟tar命令並不會為你建立目錄,所以如果目標目錄不存在的情況下該命令會失敗。
3. 提取出單個檔案
為了從一個歸檔檔案中提取出單個檔案,只需要將檔名按照以下方式將其放置在命令後面。
$ tar -xz -f abc.tar.gz "./new/abc.txt"
在上述命令中,可以按照以下方式來指定多個檔案。
$ tar -xz -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"
4.使用萬用字元來解壓多個檔案
萬用字元可以用來解壓於給定萬用字元匹配的一批檔案,例如所有以”.txt”作為副檔名的檔案。
$ tar -xz -f abc.tar.gz --wildcards "*.txt"
5. 列出並檢索tar歸檔檔案中的內容
如果你僅僅想要列出而不是解壓tar歸檔檔案的中的內容,使用“-t”(test)選項, 下面的命令用來列印一個使用gzip壓縮過的tar歸檔檔案中的內容。
$ tar -tz -f abc.tar.gz ./new/ ./new/cde.txt ./new/subdir/ ./new/subdir/in.txt ./new/abc.txt ...
可以將輸出通過管道定向到grep來搜尋一個檔案,或者定向到less命令來瀏覽內容列表。 使用”v”冗長選項將會列印出每個檔案的額外詳細資訊。
對於 tar.bz2/bzip檔案,需要使用”j”選項。
結合上述的命令和grep命令來檢索歸檔檔案,如下所示。簡單吧!
$ tar -tvz -f abc.tar.gz | grep abc.txt -rw-rw-r-- enlightened/enlightened 0 2015-01-13 11:40 ./new/abc.txt
6.建立一個tar/tar.gz歸檔檔案
現在我們已經學過了如何解壓一個tar歸檔檔案,是時候開始建立一個新的tar歸檔檔案了。tar命令可以用來將所選的檔案或整個目錄放入到一個歸檔檔案中,以下是相應的樣例。
下面的命令使用一個目錄來建立一個tar歸檔檔案,它會將該目錄中所有的檔案和子目錄都加入到歸檔檔案中。
$ tar -cvf abc.tar ./new/ ./new/ ./new/cde.txt ./new/abc.txt
上述命令不會建立一個壓縮的的歸檔檔案,只是一個普通的歸檔檔案,只是將多個檔案放入到一個歸檔檔案中並沒有真正地壓縮每個檔案。
為了使用壓縮,可以分別使用“z”或“j”選項進行gzip或bZIP壓縮演算法。
$ tar -cvzf abc.tar.gz ./new/
檔案的副檔名其實並不真正有什麼影響。“tar.gz” 和“tgz”是gzip壓縮演算法壓縮檔案的常見副檔名。 “tar.bz2”和“tbz”是bzip壓縮演算法壓縮檔案的常見副檔名(LCTT 譯註:歸檔是否是壓縮的和採用哪種壓縮方式並不取決於其副檔名,副檔名只是為了便於辨識。)。
7. 在新增檔案之前進行確認
一個有用的選項是“w”,該選項使得tar命令在新增每個檔案到歸檔檔案之前來讓使用者進行確認,有時候這會很有用。
使用該選項時,只有使用者輸入“y”時的檔案才會被加入到歸檔檔案中,如果你不輸入任何東西,其預設表示是一個“n”。
# 新增指定檔案 $ 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 #現在列出所有被加入的檔案 $ tar -t -f abc.tar.gz ./new/abc.txt ./new/cde.txt ./new/subdir/
8. 加入檔案到存在的歸檔檔案中
“r”選項可以被用來將檔案加入到已存在的歸檔檔案中,而不用建立一個新的歸檔檔案,下面是一個簡單的樣例:
$ tar -rv -f abc.tar abc.txt
檔案並不能加入到已壓縮的歸檔檔案中(gz 或 bzip)。檔案只能被加入到普通的歸檔檔案中。
9. 將檔案加入到壓縮的歸檔檔案中(tar.gz/tar.bz2)
之前已經提到了不可能將檔案加入到已壓縮的歸檔檔案中,然而依然可以通過簡單的一些把戲來完成。使用gunzip命令來解壓縮歸檔檔案,然後將檔案加入到歸檔檔案中後重新進行壓縮。
$ gunzip archive.tar.gz $ tar -rf archive.tar ./path/to/file $ gzip archive.tar
對於bzip檔案分別使用bzip2和bunzip2。
10.通過tar來進行備份
一個真實的場景是在固定的時間間隔內來備份目錄,tar命令可以通過cron排程來實現這樣的一個備份,以下是一個樣例 :
$ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/
使用cron來執行上述的命令會保持建立類似以下名稱的備份檔案 :’archive-20150218.tar.gz’。
當然,需要確保日益增長的歸檔檔案不會導致磁碟空間的溢位。
11. 在建立歸檔檔案時進行驗證
“W”選項可以用來在建立歸檔檔案之後進行驗證,以下是一個簡單例子。
$ 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
需要注意的是驗證動作不能在壓縮過的歸檔檔案上進行,只能在非壓縮的tar歸檔檔案上執行。
這次就先到此為止,可以通過“man tar”命令來檢視tar命令的的手冊。
相關文章
- Linux tar壓縮和解壓縮等命令Linux
- linux壓縮和解壓縮命令Linux
- Linux命令 tar 打包解壓縮Linux
- linux壓縮和解壓縮命令整理Linux
- linux檔案壓縮和解壓命令Linux
- linux壓縮和解壓命令總結Linux
- linux壓縮和解壓縮命令大全Linux
- Linux解壓tar.gz和tar.bz2的命令Linux
- Linux下的tar壓縮解壓縮命令詳解Linux
- Linux 常用基本命令 壓縮 解壓縮 tarLinux
- linux中常見的打包壓縮命令——tar、jarLinuxJAR
- 壓縮解壓命令(tar, zip)
- Linux 中 17 個 tar 命令實用示例Linux
- linux的tar命令詳情;linux多個檔案壓縮打包到一個壓縮檔案Linux
- 常用的解壓縮命令 tar
- Linux下tar,jar壓縮,解壓常用命令LinuxJAR
- Linux中檔案的壓縮和解壓縮Linux
- Linux命令:XZ解壓tar.xz字尾的壓縮包Linux
- tar 分卷壓縮&解壓縮命令
- 常用的壓縮和解壓命令案例
- 壓縮命令tar詳解
- 在Linux中,如何使用tar命令建立和恢復備份?Linux
- 每天一個 Linux 命令(28):tar 命令Linux
- 每天一個linux命令(28):tar命令Linux
- Linux下*.tar.gz檔案解壓縮命令Linux
- Linux - tar命令Linux
- Linux命令篇 - tar 命令Linux
- 如何使用Tar命令在Linux系統中解壓各種檔案格式Linux
- Linux命令:壓縮指令(compress,uncompress,gzip,gunzip,tar)Linux
- mac 的tar命令--exclude和linux的tar命令--exclude的區別MacLinux
- 『學了就忘』Linux基礎命令 — 32、壓縮和解壓縮相關命令Linux
- Linux tar分卷壓縮與解壓縮Linux
- 【Linux基礎】壓縮和解壓Linux
- 使用tar命令從磁帶中解壓資料夾的問題
- tar.gz壓縮命令使用方法
- 解壓tar包中的指定檔案
- linux tar命令簡介Linux
- Linux隨筆---tar命令Linux