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