- 論壇徽章:
- 0
|
用途
處理歸檔。
語法
tar {
-c
|
-r
|
-t
|
-u
|
-x
} [
-b
Blocks ] [
-B
] [
-d
]
[
-F
] [
-h
] [
-i
]
[
-L
InputList ] [
-l
] [
-m
] [
-N
Blocks ][
-o
] [
-p
]
[
-s
] [
-v
] [
-w
]
[ -Number ] [
-f
Archive ] [
-S
Blocksb |
-S
Feet |
-S
Feet@Density ] [ File | Directory |
-C
Directory ] ...
描述
注意:由于在 tar 命令中對(duì)頭塊空間的限制,當(dāng)恢復(fù)到某些系統(tǒng)時(shí),大于 65,535 的用戶號(hào)(UID)和組標(biāo)識(shí)號(hào)(GID)將毀壞。大小約束只影響所有權(quán)和許可權(quán)而不對(duì)數(shù)據(jù)造成損害。所有權(quán)的毀壞發(fā)生在下列系統(tǒng)中:
- 不使用 uname 和 gname 字段來檢查所有權(quán)的系統(tǒng)。
- 與歸檔系統(tǒng)沒有相同的用戶和組標(biāo)識(shí)的系統(tǒng)。
注:
ustar 頭格式允許文件大到 8 GB。因此,tar 命令支持歸檔最大 8 GB 的文件。tar 不保留任何稀疏分配的文件的稀疏屬性。任何在恢復(fù)前原是稀疏的文件,將按文件大小在文件系統(tǒng)內(nèi)分配其所有空間。
tar 命令通過將文件寫入歸檔存儲(chǔ)介質(zhì)或?qū)⑽募䦶慕橘|(zhì)中取回,來處理歸檔。
由 tar 命令使用的文件通過 File 參數(shù)來表示。如果 File 參數(shù)引用一個(gè)目錄,則引用該目錄并遞歸引用該目錄下全部的文件和目錄。
tar 命令在缺省設(shè)備(通常是磁帶)上尋找歸檔,除非使用
-f
Archive 標(biāo)志指定另一個(gè)設(shè)備。當(dāng)為美國磁帶歸檔程序(USTAR)格式指定大于 100 個(gè)字符的路徑名稱時(shí),請(qǐng)記住路徑名稱是由一個(gè)前綴緩沖區(qū)、一個(gè) /(斜杠)和一個(gè)名稱緩沖區(qū)組成的。
前綴緩沖區(qū)最大可以有 155 字節(jié),而名稱緩沖區(qū)最大可以容納 100 字節(jié)。如果路徑名稱不能用斜杠分割為這兩部分,則它不能被歸檔。這個(gè)限制是考慮到 tar 歸檔頭的結(jié)構(gòu),而且必須為了符合標(biāo)準(zhǔn)和向下兼容而維護(hù)該限制。另外,硬鏈接或符號(hào)鏈接(“鏈接名稱”)的目標(biāo)長度不能超出 100 字節(jié)。
當(dāng)寫到歸檔時(shí),tar 命令使用一個(gè)臨時(shí)文件(/tmp/tar* 文件),并在內(nèi)存中維護(hù)一個(gè)包含多鏈接文件的表。如果 tar 命令不能創(chuàng)建臨時(shí)文件,或者沒有足夠的可用內(nèi)存來放置鏈接表,您會(huì)接收到錯(cuò)誤消息。
tar 命令有兩組標(biāo)志:必需標(biāo)志和可選標(biāo)志。必需標(biāo)志控制 tar 命令的操作,包括 -c、-r、-t、-u 和 -x 標(biāo)志。要執(zhí)行 tar 命令至少要選擇一個(gè)必需標(biāo)志。選擇了必需標(biāo)志后,您可以選擇一個(gè)可選標(biāo)志,但它們對(duì)控制 tar 命令都不是必要的。
注:
當(dāng)存儲(chǔ)設(shè)備是一個(gè)普通文件或一個(gè)塊特殊文件時(shí),
-u
和
-r
標(biāo)志可退格。然而,原始磁帶設(shè)備不支持退格。因此當(dāng)存儲(chǔ)設(shè)備是原始磁帶時(shí),
-u
和
-r
標(biāo)志進(jìn)行倒帶、打開磁帶并再次讀取磁帶。在塊磁帶上記錄的長度是一塊,但它們通常比在原始磁帶上的密度的一半還少。因此,盡管按塊記錄原始磁帶必須被讀取兩遍,但磁帶運(yùn)動(dòng)總量比從塊式磁帶讀取一遍單塊記錄還少。流式磁帶設(shè)備的結(jié)構(gòu)不支持在磁帶最后增加信息。因此,當(dāng)存儲(chǔ)設(shè)備是流式磁帶時(shí),
-u
和
-r
標(biāo)志不是有效的選項(xiàng)。試圖使用這些標(biāo)志將導(dǎo)致下列錯(cuò)誤消息:
tar: 更新和替換選項(xiàng)對(duì)流式磁帶機(jī)無效。磁帶錯(cuò)誤無法恢復(fù)。可以通過更改缺省塊大小改善 tar 命令在 IBM 9348 磁帶機(jī) 12 型上的性能。要更改塊大小,請(qǐng)?jiān)诿钚休斎胂铝忻睿?br />
chdev -1 -a block_size=32k
要了解更多關(guān)于使用磁帶設(shè)備的信息,請(qǐng)參閱
rmt
特殊文件。
標(biāo)志
tar 命令的標(biāo)志有兩組,必需的和可選的。必須提供至少一個(gè)必需標(biāo)志來控制 tar 命令。
必需標(biāo)志
-c
創(chuàng)建新的歸檔,并將由一個(gè)或多個(gè) File 參數(shù)所指定的文件寫入歸檔的開頭。
-r
將由一個(gè)或多個(gè) File 參數(shù)所指定的文件寫入歸檔的最后。這個(gè)標(biāo)志不是對(duì)任何磁帶設(shè)備都有效,因?yàn)橛行┰O(shè)備不支持在磁帶的最后添加信息。
-t
按照文件在歸檔中的順序列出文件。文件可能會(huì)多次列出。
-u
只有當(dāng)文件不在歸檔中,或?qū)懭霘w檔后被修改過,才將這些文件(由一個(gè)或多個(gè) File 參數(shù)所指定)寫入歸檔的最后。-u 標(biāo)志不是對(duì)任何磁帶設(shè)備都有效,因?yàn)橛行┐艓гO(shè)備不支持在磁帶的最后添加信息。
-x
從歸檔中抽取一個(gè)或多個(gè) File 參數(shù)指定的文件。如果 File 參數(shù)是指一個(gè)目錄, tar 命令遞歸地從歸檔中抽取那個(gè)目錄。
如果您未指定 File 參數(shù),tar 命令從歸檔中抽取所有的文件。如果歸檔中包含同一文件的多個(gè)副本,最后抽取的副本覆蓋所有以前抽取的副本。如果被抽取的文件在系統(tǒng)中不存在,則創(chuàng)建該文件。如果您有適當(dāng)?shù)脑S可權(quán),tar 命令用與磁帶上的相同所有者和組標(biāo)識(shí)恢復(fù)所有文件和目錄。如果您沒有適當(dāng)?shù)脑S可權(quán),將以您的所有者標(biāo)識(shí)和組標(biāo)識(shí)恢復(fù)文件和目錄。只能請(qǐng)求文件最后出現(xiàn)的版本。
可選標(biāo)志
-B
輸入分塊和輸出分塊強(qiáng)制為每個(gè)記錄 20 塊。使用這個(gè)選項(xiàng),tar 命令可在那些可能未維護(hù)分塊的通信信道間執(zhí)行。
-b Blocks
指定每個(gè)記錄的 512 字節(jié)塊數(shù)量。缺省值和最大值都是 20,這是對(duì)磁帶記錄適當(dāng)?shù)臄?shù)目。由于記錄間隙大小的原因,用大的分塊因子寫的磁帶可以比每個(gè)記錄只有一塊的磁帶保存更多的數(shù)據(jù)。
當(dāng)讀取磁帶時(shí),塊大小自動(dòng)確定(
-x
或
-t
功能標(biāo)志)。歸檔被
-u
和
-r
功能更新時(shí),使用現(xiàn)有的記錄大小。只有當(dāng)使用
-c
標(biāo)志創(chuàng)建新的歸檔時(shí),tar 命令才使用 Blocks 參數(shù)指定的值寫入歸檔。
當(dāng)用
-f
標(biāo)志輸出到普通文件時(shí),您可以使用與磁盤塊大小相匹配的分塊因子來節(jié)省磁盤空間(例如,對(duì)于 2048 字節(jié)的磁盤塊,使用
-b4
標(biāo)志)。
-C Directory
使 tar 命令向由 Directory 變量指定的目錄執(zhí)行
chdir
子例程。使用 -C 標(biāo)志允許歸檔不用相近公共父目錄來關(guān)聯(lián)的多個(gè)目錄,使用簡短的相對(duì)路徑名稱。例如,要從 /usr/include 和 /etc 目錄中歸檔文件,可以使用下列命令:
tar
c
-C /usr/include File1 File2 -C /etc File3 File4
-C Directory 標(biāo)志必須在所有其它標(biāo)志后出現(xiàn),也可以在給定的文件名列表中出現(xiàn)。
-d
為塊文件、特殊字符文件以及先進(jìn)先出(FIFO)管道進(jìn)程創(chuàng)建單獨(dú)條目。通常,tar 命令不會(huì)歸檔這些特殊文件。當(dāng)使用 -d 標(biāo)志寫入歸檔時(shí),tar 命令使歸檔可以用
-x
標(biāo)志恢復(fù)空目錄、特殊文件以及先進(jìn)先出(FIFO)管道進(jìn)程。
注:
雖然任何人可以歸檔特殊文件,但只有擁有 root 用戶權(quán)限的用戶可以從歸檔中抽取特殊文件。
-F
在歸檔前檢查文件類型。源代碼控制系統(tǒng)(SCCS),修訂控制系統(tǒng)(RCS),名為 core、errs 和 a.out 的文件,以及以 .o(點(diǎn) o)結(jié)束的文件不歸檔。
-f Archive
使用 Archive 變量表示要讀或?qū)懙臍w檔。當(dāng)未指定這個(gè)標(biāo)志,tar 命令使用一個(gè)針對(duì)特定系統(tǒng)的缺省文件名(格式為 /dev/rmt0)。如果指定的 Archive 變量是 -(減號(hào)),tar 命令寫入標(biāo)準(zhǔn)輸出或從標(biāo)準(zhǔn)輸入中讀取。如果寫入標(biāo)準(zhǔn)輸出,您必須使用
-c
標(biāo)志。
-h
強(qiáng)制 tar 命令監(jiān)視符號(hào)鏈接,就好象它們是常規(guī)文件或目錄。通常,tar 命令不監(jiān)視符號(hào)鏈接。
-i
忽略頭校驗(yàn)和的錯(cuò)誤。tar 命令在歸檔中寫入一個(gè)文件頭,它包含每個(gè)文件的校驗(yàn)和。如果未指定這個(gè)標(biāo)志,系統(tǒng)通過重新計(jì)算校驗(yàn)和來驗(yàn)證頭塊的內(nèi)容,并在發(fā)生不匹配時(shí),停止并報(bào)目錄校驗(yàn)和錯(cuò)誤。如果指定這個(gè)標(biāo)志,tar 命令將記錄錯(cuò)誤,然后向前掃描直到查找到一個(gè)有效的頭塊。這就允許從多卷歸檔的后面的卷中恢復(fù)文件,而不需讀取前面的卷。
-L InputList
:-L 選項(xiàng)的 Inputlist 參數(shù)應(yīng)該總是一個(gè)文件名稱,該名稱列出需要?dú)w檔的文件和目錄。
同樣地,InputList 參數(shù)可以是一個(gè)保存某文件名稱的變量,該文件列出要?dú)w檔的文件和目錄。
這個(gè)選項(xiàng)幫助將列在 InputList 參數(shù)中的文件和目錄寫入歸檔。
InputList 參數(shù)中的目錄不被遞歸。對(duì)于包含于 InputList 參數(shù)中的目錄,tar 命令只將目錄寫入歸檔,而不將目錄中的文件和子目錄寫入歸檔。
如果額外的文件和目錄在命令行中跟在 InputList 參數(shù)后,InputList 參數(shù)的內(nèi)容歸檔在這些文件和目錄之后。
這些額外的文件或目錄按它們的缺省行為歸檔,即將它們遞歸地歸檔。
-l
對(duì)于每個(gè)帶有鏈接數(shù)大于 1 的文件,而其相應(yīng)的鏈接卻未歸檔,寫錯(cuò)誤消息到標(biāo)準(zhǔn)輸出。
例如,如果 file1 和 file2 是用硬鏈接鏈接在一起,而只有 file1 存放在歸檔中,則 -l 標(biāo)志將發(fā)出錯(cuò)誤消息。
如果未指定 -l 標(biāo)志,將不顯示錯(cuò)誤消息。
-m
使用抽取時(shí)間作為修改時(shí)間。缺省是保留文件的修改時(shí)間。
-N Blocks
當(dāng) tar 命令處理流式磁帶歸檔時(shí),允許它使用很大的塊的簇。
然而請(qǐng)注意,在輸入時(shí),如果用這個(gè)標(biāo)志創(chuàng)建了非常長的塊大小, tar 命令將不能自動(dòng)確定磁帶的塊大小。
沒有 -N Blocks 標(biāo)志時(shí),tar 命令可以自動(dòng)確定的最大塊大小為 20 塊。
-o
提供與舊版本(非 AIX)tar 命令的向下兼容。當(dāng)使用這個(gè)標(biāo)志進(jìn)行讀取時(shí),被抽取的文件使用運(yùn)行程序的用戶的用戶標(biāo)識(shí)和組標(biāo)識(shí)(UID 和 GID),而不是歸檔中的用戶標(biāo)識(shí)和組標(biāo)識(shí)。
這是對(duì)于普通用戶的缺省行為。
-p
恢復(fù)字段到它們的原始方式,忽略現(xiàn)有的用戶權(quán)限屏蔽位(umask)。
setuid、setgid 和 tacky 位許可權(quán)也恢復(fù)給擁有 root 用戶權(quán)限的用戶。
這個(gè)標(biāo)志恢復(fù)文件到其原始方式,但不恢復(fù)目錄到其原始方式。
-s
如果 tar 命令未能使用 -s 標(biāo)志成功嘗試鏈接(常規(guī)鏈接)兩個(gè)文件,請(qǐng)?jiān)囍鴦?chuàng)建符號(hào)鏈接。
-SBlocksb, -S Feet, -S Feet@Density
指定每卷中的 512KB 塊的數(shù)目(第一種格式),不依賴于磁帶分塊因子。
您也可以使用第二種格式,用英尺來指定磁帶大小,在這種情況下,tar 命令假定一個(gè)缺省的 Density 變量。第三種格式允許您指定磁帶長度和密度。
英尺被保守地假定為 11 英寸長。
這個(gè)標(biāo)志讓您更容易處理多卷磁帶歸檔,這時(shí) tar 命令必須能夠確定每卷能放入多少塊。
注:
磁帶機(jī)在密度能力上有差異。Density 變量計(jì)算系統(tǒng)在磁帶上可放入的數(shù)據(jù)量。
如果使用 1/4 英寸磁帶設(shè)備,在指定 Feet 變量的值時(shí),一定要考慮磁帶設(shè)備上的磁道數(shù)目。
例如,可以使用 -S Feet@Density 標(biāo)志來指定一個(gè)有 600 英尺磁帶和 8000 字節(jié)/英寸密度的 4 磁道、1/4 英寸磁帶機(jī),如下:
-S 2400@8000 這里,600 英尺乘以 4 磁道等于 2400 英尺。
-v
在處理每個(gè)文件時(shí),列出它們的名稱。使用
-t
標(biāo)志,-v 給出磁帶條目的更多信息,包括文件大小、上次修改的時(shí)間、用戶標(biāo)識(shí)(UID)、組標(biāo)識(shí)(GID)和許可權(quán)。
-w
顯示要進(jìn)行的操作,跟著是文件名,然后等候用戶確認(rèn)。
如果回答是肯定的,則執(zhí)行操作。
如果回答不是肯定的,則忽略文件。
-Number
使用 /dev/rmtNumber 文件,而不是缺省值。例如,-2 標(biāo)志
和 -f/dev/rmt2 文件是相同的。
退出狀態(tài)
該命令返回下列退出值:
0
成功完成。
>0
有錯(cuò)誤發(fā)生。
示例
要將 file1 和 file2 文件寫到缺省磁帶機(jī)上新的歸檔中,請(qǐng)輸入:
tar
-c
file1 file2
要從 /dev/rmt2 磁帶設(shè)備上的歸檔文件中抽取 /tmp 目錄里的全部文件,并以抽取時(shí)間作為修改時(shí)間,請(qǐng)輸入:
tar -xm -f/dev/rmt2 /tmp要新建一個(gè)包含 file1 文件的歸檔文件,并傳遞歸檔文件到 dd 命令,使之被寫到 /dev/rmt1 設(shè)備,請(qǐng)輸入:
tar -cvf - file1 | dd of=/dev/rmt1 conv=sync要顯示當(dāng)前目錄上 out.tar 磁盤歸檔文件中各文件的名稱,請(qǐng)輸入:
tar -vtf out.tar要擴(kuò)展壓縮了的 tar 歸檔文件,fil.tar.z, 傳遞文件到 tar 命令,并從擴(kuò)展了的 tar 歸檔文件中抽取全部文件,請(qǐng)輸入:
zcat fil.tar.Z | tar -xvf -要使用簡短相對(duì)路徑名稱歸檔 /usr/include 和 /usr/bin 文件的內(nèi)容,請(qǐng)輸入:
cd /usr
tar -cvf/dev/rmt0 -C./include . -C ../bin .
注:
當(dāng)用相對(duì)路徑名稱指定 -C 標(biāo)志的多個(gè)實(shí)例,用戶必須考慮到先前的 -C 標(biāo)志請(qǐng)求。要在使用 -S 標(biāo)志時(shí)歸檔到一個(gè) 8 毫米設(shè)備,請(qǐng)輸入:
tar -cvf /dev/rmt0 -S 4800000b /usr
注:
當(dāng)歸檔到 8 毫米設(shè)備, 不推薦用 -S Feet 和 -S Feet@Density 標(biāo)志,因?yàn)?8 毫米設(shè)備在寫入磁帶時(shí)不使用密度概念。要?dú)w檔所有 C 文件的一個(gè)列表(這些文件通過 -L 選項(xiàng)的 InputList 參數(shù)被列在文件中),請(qǐng)輸入:
tar -cvf fl.tar -L fl_list這里,fl_list 是一個(gè)文件,它包含一個(gè)所有 .c 文件的列表。這可以通過以下命令獲得:
ls *.c > fl_list要使用 -L 選項(xiàng)設(shè)置變量來歸檔所有 C 文件的一個(gè)列表,請(qǐng)輸入:
ls *.c > fl_list
fl=fl_list
tar -cvf var.tar -L $fl
文件
/dev/rmt0
指定缺省磁帶設(shè)備。
/bin/tar
指定 tar 命令的符號(hào)鏈接。
/usr/bin/tar
包含 tar 命令。
/tmp/tar*
指定臨時(shí)文件。
注:
在 AIX 3.2 中,整個(gè) /bin 目錄是到 /usr/bin 的一個(gè)符號(hào)鏈接。
相關(guān)信息
cat
命令、
dd
命令、
pax
命令。
rmt
特殊文件。
AIX 5L Version 5.2 System Management Concepts: Operating System and Devices 中的
File Systems
解釋了文件系統(tǒng)類型、管理、結(jié)構(gòu)以及維護(hù)。
《AIX 5L V5.2 系統(tǒng)用戶指南:操作系統(tǒng)與設(shè)備》中的
『目錄概述』
解釋了使用目錄和路徑名稱。
《AIX 5L V5.2 系統(tǒng)用戶指南:操作系統(tǒng)與設(shè)備》中的
『文件概述』
提供了使用文件的信息。
本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u1/52454/showart_1670267.html |
|