這是 tar 常用命令的快速參考備忘單。
在Linux平臺上,tar
命令是主要的歸檔實用程序。了解各種 tar
命令選項將幫助您掌握歸檔文件操作。tar
代表磁帶存檔。
tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-C <目的目錄>][-f <備份文件>][--delete][--totals][文件或目錄...]
以前 unix 系統管理員使用 tar
執行磁帶機備份。tar
命令用于獲取文件和目錄的集合,并生成高度壓縮的歸檔文件,在Linux中通常稱為 tarball
或 tar
、gzip
和 bzip
。
:- | - |
---|---|
-c | 建立新的備份文件 |
-C | 切換到指定的目錄 |
-d | 對比備份文件內和文件系統上的文件的差異 |
-x | 解壓縮歸檔文件 |
-v | 顯示指令執行過程 |
-f | 指定歸檔文件的文件名 |
-t | 查看歸檔文件內容 |
-j | 通過 bzip2 指令處理備份文件 |
-z | 通過 gzip 指令處理備份文件 |
-r | 向現有存檔文件追加或更新文件或目錄 |
-W | 驗證歸檔文件 |
--totals | 備份文件建立后,列出文件大小 |
--delete | 從備份文件中刪除指定的文件 |
--wildcards | 在 unix tar 命令中指定匹配模式 |
在當前工作目錄的 /home/cyberpunk/testdir
目錄下創建一個名為 archive.tar
的 tar
歸檔文件:
tar -cvf archive.tar /home/cyberpunk/testdir/
/home/cyberpunk/testdir/
/home/cyberpunk/testdir/file1.txt
/home/cyberpunk/testdir/file2.sh
/home/cyberpunk/testdir/file3.tar
本例中使用的選項有:
:- | - |
---|---|
-c | 建立新的備份文件 |
-v | 顯示指令執行過程 |
-f | 指定歸檔文件的文件名 |
tar.gz
存檔文件要創建一個壓縮的 gzip
歸檔文件,我們需要使用選項 z
。
tar cvzf compressedArchive.tar.gz /home/cyberpunk/testdir
/home/cyberpunk/testdir/
/home/cyberpunk/testdir/file1.txt
/home/cyberpunk/testdir/file2.jpg
/home/cyberpunk/testdir/file3.png
本例中使用的選項有:
:- | - |
---|---|
-c | 建立新的備份文件 |
-v | 顯示指令執行過程 |
-f | 指定歸檔文件的文件名 |
-z | 通過 gzip 指令處理備份文件 |
tar.bz2
文件tar
的 bz2
壓縮,可以創建比 gzip
文件小的歸檔。Bz2
模式執行歸檔壓縮和解壓所需的時間比 gzip
模式多。通常,這個時間差可以忽略不計,但如果文件非常打,或者是文件數量非常多,那么時間差就會非常大。
tar cvfj Archive.tar.bz2 /home/cyberpunk/testdir
/home/cyberpunk/testdir/
/home/cyberpunk/testdir/file1.txt
/home/cyberpunk/testdir/file2.txt
/home/cyberpunk/testdir/file3.txt
本例中使用的選項有:
:- | - |
---|---|
-c | 建立新的備份文件 |
-v | 顯示指令執行過程 |
-f | 指定歸檔文件的文件名 |
-j | 通過 bzip2 指令處理備份文件 |
要解壓縮(提取)一個tar文件,將 x
(提取)選項傳遞給該命令
使用不帶 -C
選項的命令將在當前工作目錄中提取存檔。-C
選項告訴命令在哪里提取存檔文件。
tar -xvf Archive.tar -C /home/cyberpunk/testdir/
/home/cyberpunk/testdir/
/home/cyberpunk/testdir/file1.txt
/home/cyberpunk/testdir/file2.txt
/home/cyberpunk/testdir/file3.txt
本例中使用的選項有:
:- | - |
---|---|
-x | 解壓縮歸檔文件 |
-v | 顯示指令執行過程 |
-f | 指定歸檔文件的文件名 |
小知識:使用 tar
命令創建的所有歸檔文件,都可以以相同的方式提取。
tar -xvf Archive.tar.gz
/home/cyberpunk/testdir/
/home/cyberpunk/testdir/file1.txt
/home/cyberpunk/testdir/file2.txt
/home/cyberpunk/testdir/file3.txt
本例中使用的選項有:
:- | - |
---|---|
-x | 解壓縮歸檔文件 |
-v | 顯示指令執行過程 |
-f | 指定歸檔文件的文件名 |
小知識:使用 tar
命令創建的所有歸檔文件,都可以以相同的方式提取。
tar -xvf Archive.tar.bz2
/home/cyberpunk/testdir/
/home/cyberpunk/testdir/file1.txt
/home/cyberpunk/testdir/file2.txt
/home/cyberpunk/testdir/file3.txt
本例中使用的選項有:
:- | - |
---|---|
-x | 解壓縮歸檔文件 |
-v | 顯示指令執行過程 |
-f | 指定歸檔文件的文件名 |
使用 t
選項列出 tar
歸檔文件的內容:
# tar -tvf uploadprogress.tar
-rwxr--r-- root/root 1111 2014-10-19 12:33:42 file1.txt
-rwxr--r-- root/root 1111 2014-10-19 12:33:42 file2.txt
-rwxr--r-- root/root 1111 2014-10-19 12:33:42 file3.txt
-rwxr--r-- root/root 1111 2014-10-19 12:33:42 file4.txt
本例中使用的選項有:
:- | - |
---|---|
-t | 查看歸檔文件內容 |
-v | 顯示指令執行過程 |
-f | 指定歸檔文件的文件名 |
tar --extract --file=archive.tar file1.txt
file1.txt
tar -xvf Archive.tar "file 1" "file 2"
# tar -xvf Archive.tar --wildcards *.txt'
/home/cyberpunk/testdir/file1.txt
/home/cyberpunk/testdir/file2.txt
/home/cyberpunk/testdir/file3.txt
要向現有的 tar
文件中添加文件或目錄,可以使用 r
選項。例如,我們將 xyz.txt
文件和 php
目錄添加到現有的 tecmint-14-09-12.tar
歸檔文件中。
# tar -rvf Archive.tar xyz.txt #add file
or
# tar -rvf Archive.tar php # add directory