共找到4條詞條名為Tar的結果 展開

Tar

Linux系統命令

Unix和類Unix系統上的壓縮打包工具,可以將多個文件合併為一個文件,打包后的文件名亦為“tar”。tar文件格式已經成為POSIX標準,最初是POSIX.1-1988,當前是POSIX.1-2001。本程序最初的設計目的是將文件備份到磁帶上(tape archive),因而得名tar。

版本


常用的tar是自由軟體基金會開發的GNU版,穩定版本是1.28,發佈於2014年7月27日。
同時,它有多個壓縮率不同的版本,如tar.xz和tar.gz,前者的壓縮率更高,但可能有兼容性問題。

作用


tar命令是Unix/Linux系統中備份文件的可靠方法,幾乎可以工作於任何環境中,它的使用許可權是所有用戶。

縮寫


tar代表未壓縮的tar文件。已壓縮的tar文件則附加壓縮文件的擴展名,如經過gzip壓縮后的tar文件,擴展名為“.tar.gz”。由於受到DOS8.3文件名格式的限制,常使用下列縮寫:
● .tgz等價於.tar.gz
● .tbz與tb2等價於.tar.bz2
● .taz等價於.tar.Z
● .tlz等價於.tar.lzma
● .txz等價於.tar.xz

GNU用法


命令格式是:tar功能選項文件
可以將代表功能和選項的單個字母合併;當使用單個字母時,可以不用在字母前面加“-”。某些版本的tar要求嚴格按照功能字、選項字的順序,而有些版本的tar並不在意這個順序。
功能
● -c,--create創建新的tar文件
● -x,--extract,--get解開tar文件
● -t,--list列出tar文件中包含的文件的信息
● -r,--append附加新的文件到tar文件中
● -u,--update用已打包的文件的較新版本更新tar文件
● -A,--catenate,--concatenate將tar文件作為一個整體追加到另一個tar文件中
● -d,--diff,--compare將文件系統里的文件和tar文件里的文件進行比較
● --delete刪除tar文件里的文件。注意,這個功能不能用於已保存在磁帶上的tar文件。
常用選項
● -v,--verbose列出每一步處理涉及的文件的信息,只用一個“v”時,僅列出文件名,使用兩個“v”時,列出許可權、所有者、大小、時間、文件名等信息。
● -k,--keep-old-files不覆蓋文件系統上已有的文件。
● -f,--file[主機名:]文件名指定要處理的文件名。可以用“-”代表標準輸出或標準輸入。
● -P,--absolute-names使用絕對路徑。
● -j,--bzip2調用bzip2執行壓縮或解壓縮。注意,由於部分老版本的tar使用-I實現本功能,因此,編寫腳本時,最好使用--bzip2。
● -J,--xz,--lzma調用XZ Utils執行壓縮或解壓縮。依賴XZ Utils。
● -z,--gzip,--gunzip,--ungzip調用gzip執行壓縮或解壓縮。
● -Z,--compress,--uncompress調用compress執行壓縮或解壓縮。

應用示例


tar -cvf home_backup.tar/home
可以將/home目錄下的所有文件打包入home_backup.tar文件中。理解這個命令時,請注意“home_backup.tar”實際上是-f選項的參數。tar默認記錄相對路徑,即使給出的是絕對路徑,也會自動將代表根目錄的“/”去掉,所以,在這個例子中,使用“/home”和“home”是相同的。要想使用絕對路徑,請加上“P”選項,但一般不推薦使用絕對路徑,原因之一是可能導致tar炸彈攻擊。
cd/home tar-cvf home_backup.tar*
這也是一種製作備份的方法,但是不推薦這樣做。因為tar在默認解壓時,會將文件直接輸出到當前目錄下,而不會新建並輸出到一個名為home的子目錄,令到當前目錄顯得很凌亂。這也是一種形式的tar炸彈攻擊。
tar-tf home_backup.tar
列出home_backup.tar文件里已被打包的文件。此時僅僅顯示文件名。如果加上“v”,則能列出許可權、所有者、大小、時間、文件名等信息。為防止tar炸彈攻擊,應該養成解壓前查看tar文件內容的好習慣。
tar-xvf home_backup.tar
在當前目錄下解壓home_back.tar。解壓后的文件,其訪問許可權得到保留;其所有者是執行tar命令的用戶,如果tar的執行者是root,則所有者是文件原來的所有者。解壓前,最好先查看tar文件的內容,以決定是否需要新建一個臨時子目錄安放。
tar-xvf home_backup.tar home/test.c
指定解壓出test.c這個文件。解壓過程中會自動創建home這個子目錄。

命令詳解


tar命令
2.格式tar[主選項+輔選項]文件或目錄。
3.主要參數:
使用該命令時,主選項是必須要有的,它告訴tar要做什麼事情,輔選項是輔助使用的,可以選用。
3.1 主選項:
-c 創建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項。
-r 把要存檔的文件追加到檔案文件的末尾。例如用戶已經做好備份文件,又發現還有一個目錄或是一些文件忘記備份了,這時可以使用該選項,將忘記的目錄或文件追加到備份文件中。
-t列出檔案文件的內容,查看已經備份了哪些文件。
-u 更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最後。
-x 從檔案文件中釋放文件。
3.2 輔助選項:
-b 該選項是為磁帶機設定的,其後跟一數字,用來說明區塊的大小,系統預設值為20(20×512 bytes)。
-f 使用檔案文件或設備,這個選項通常是必選的。
-k 保存已經存在的文件。例如把某個文件還原,在還原的過程中遇到相同的文件,不會進行覆蓋。
-m 在還原文件時,把所有文件的修改時間設定為現在。
-M 創建多卷的檔案文件,以便在幾個磁碟中存放。
-v 詳細報告tar處理的文件信息。如無此選項,tar不報告文件信息。
-w 每一步都要求確認。
-j 代表使用‘bzip2’程序進行文件的壓縮。
-z 用gzip來壓縮/解壓縮文件,加上該選項后可以將檔案文件進行壓縮,但還原時也一定要使用該選項進行解壓縮。
-A,--catenate,--concatenate
將這一一存檔與已有的存檔合併。
-d,--diff,--compare
比較存檔與當前文件的不同之處。
--delete
從存檔中刪除。
其他參數
--atime-preserve
不改變轉儲文件的存取時間。
-b,--block-size N
指定塊大小為Nx512位元組(預設時N=20)。
-B,--read-full-blocks
讀取時重組塊(???!!!)
-C,--directory DIR
轉到目的地目的地錄。
讀取存檔時顯示目錄名。
-f,--file[HOSTNAME:]F
指定存檔或設備(預設為/dev/rmt0)
--force-local
強制使用本地存檔,即使存在克隆
-F,--info-script F--new-volume-script F
在每個磁碟結尾使用腳本F(隱含-M)。
-G,--incremental
建立老GNU格式的備份
-g,--listed-incremental F
建立新GNU格式的備份。
-h,--dereference
不轉儲動態鏈接,轉儲動態鏈接指向的文件。
-i,--ignore-zeros
忽略存檔中的0位元組塊(通常意味著文件結束)。
--ignore-failed-read
在不可讀文件中作0標記后再退出???
-k,--keep-old-files
保存現有文件;從存檔不能展開不能不進行覆蓋。
-K,--starting-file F
從存檔文件F開始。
-l,--one-file-system
在本地文件系統中創建存檔。
-L,--tape-length N
在寫入N*1024個位元組后暫停,等待更換磁碟。
-m,--modification-time
當從一個檔案中恢復文件時,不使用新的時間標籤。
-M,--multi-volume
建立多卷存檔,以便在幾個磁碟中存放。
-N,--after-date DATE,--newer DATE
僅存儲時間較新的文件。
-o,--old-archive,--portability
以V7格式存檔,不用ANSI格式。
-O,--to-stdout
將文件展開到標準輸出。
-p,--same-permissions,--preserve-permissions
展開所有保護信息。
-P,--absolute-paths
不要從文件名中去除'/'
--preserve
like-p-s
與-p-s相似。
-R,--record-number
顯示信息時同時顯示存檔中的記錄數。
--remove-files
建立存檔后刪除源文件。
-s,--same-order,--preserve-order
???
--same-owne以後所有以後使所有文件屬於同一所有者。
-S,--sparse
高效處理。
-T,--files-from F
從文件中得到要展開或要創建的文件名。
--null空間
空間空間空間空間空間束的文件名,使-C失效。
--totals
顯示用--create參數寫入的總位元組數。
-v,--verbose
詳細顯示處理的文件。
-V,--label NAME
為存檔指定卷標。
--version
顯示tar程序的版本號。
-w,--interactive,--confirmation
每個操作都要求確認。
-W,--verify
寫入存檔後進行校驗。
--exclude FILE
不把指定文件包含在內。
-X,--exclude-from FILE
從指定文件中讀入不想包含的文件的列表。
-y,--bzip2,--bunzip2
用bzip2對存檔壓縮或解壓。
-Z,--compress,--uncompress
用compress對存檔壓縮或解壓。
-z,--gzip,--ungzip
用gzip對存檔壓縮或解壓。
--use-compress-program PROG
用PROG對存檔壓縮或解壓(PROG需能接受-d參數)。
--block-compress
為便於磁碟存儲,按塊記錄存檔。
-[0-7][lmh]
指定驅動器和密度[高中低]
例如:
1.將當前目錄下所有.txt文件打包並壓縮歸檔到文件this.tar.gz,我們可以使用tar czvf this.tar.gz./*.txt
2.將當前目錄下的this.tar.gz中的文件解壓到當前目錄我們可以使用tar xzvf this.tar.gz-C./
在windows下支持TAR格式的軟體有WinMount等。