マニュアルページセク ション 1: ユーザーコマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

tar(1)

名前

tar - テープアーカイブの作成およびファイルの追加または抽出

形式

tar c[BDEFhijlnopPTvwzZ@/[0-7]][bf][X...] [blocksize] 
     [tarfile] [size] [exclude-file]... 
     {file | −I include-file | −C directory file}...
tar r[BDEFhijlnTvwzZ@/[0-7]][bf] [blocksize] [tarfile] 
     [size] 
     {file | −I include-file | −C directory file}...
tar t[BFhijlnTvzZ[0-7]][f][X...] [tarfile] [size] 
     [exclude-file]... {file | −I include-file}...
tar u[BDEFhijlnTvwzZ@/[0-7]][bf] [blocksize] [tarfile] 
     [size] file...
tar x[BFhilmnjopTvwzZ@/[0-7]][f][X...] [tarfile] [size] 
     [exclude-file]... [file]...

説明

tar コマンドは、複数のファイルを tarfile と呼ばれる 1 つのファイルに保管したり、抽出したりします。通常、 tarfile は磁気テープですが、その他のファイルであってもかまいません。tar の動作は、キー (key) 引数によって制御されます。key は、1 個の機能文字 (crtu、または x) と、この機能文字に応じた 0 個以上の機能修飾子 (文字または数字) からなる文字列です。key 文字列はスペース文字を含みません。機能修飾子に対する引数は key 文字列で使用した順序で コマンド行に指定します。

−I include-file−C directory filefile 引数は、どのファイルまたはディレクトリを保管または抽出するかを指定します。いずれの場合も、ディレクトリ名を使用すると、そのディレクトリのすべてのファイルやサブディレクトリを (再帰的に) 参照します。中括弧 ({ }) で囲まれた引数は、そのうちのどれか 1 つの引数を指定することを示します。

オペランド

次のオペランドがサポートされています。

−C directory file

directory への chdir (cd(1) を参照) 操作を行なった上、c (作成) 操作または r(置換) 操作を file に対して行います。file には、短い相対パス名を使用します。file が「.」の場合、directory 内のすべてのファイルを保存します。このオペランドを使用すると、共通の親を持たない複数のディレクトリ内にあるファイルを保管できます。

−I include-file

1 行につき 1 つのファイル名からなるファイルの一覧を含んだ include-file をオープンし、各ファイルがコマンド行で 指定されたのと同様に処理します。include-file の行末に不要なスペースを置かないように注意してください。また、各行頭にも不要なスペースを置かないように注意してください。組み込むファイルの最初の文字列に対する一致には、改行で分かれている行全体が使用されます。除外されたファイルが存在する場合には (X 機能修飾子を参照)、除外されたファイルは組み込まれたファイルよりも優先されます。あるファイルが exclude-fileinclude-file の両方のファイル (またはコマンド行上) で指定されていれば、そのファイルは除外されます。

file

保存 (cr、または u機能を指定した場合) 、抽出 (x) 、または表示 (t) される通常ファイルまたはディレクトリのパス名。file がディレクトリのパス名である場合、動作はそのディレクトリ以下のすべてのファイルと (再帰的に) サブディレクトリに適用します。

ファイルがアーカイブで、E フラグ (「機能修飾子」を参照) が指定されていない場合、ファイル名は 256 文字を超えることはできません。さらに、親ディレクトリ名との間を分割して考えると、ディレクトリ名部分は 155 文字、ファイル名部分は 100文字を超えることはできません。E フラグが指定されている場合、PATH_MAX で指定されている文字までファイル名に指定できます。

たとえば、ファイル名部分が 100 文字を超えるファイルは、E フラグを指定しないと保存されない可能性があります。ディレクトリ名部分が200 文字で、ファイル名部分が 50 文字であるファイルは、ディレクトリ名の 151 文字目から 156 文字目のどこかにスラッシュが 1 つ入っていれば、E フラグを指定しなくても保存されます。

機能文字

キーの機能部分は、次の文字のいずれか 1 つで指定します。

c

作成。tarfile の最初から書き込みます。最後からではありません。

r

置換。指定した file を tarfile の最後に書き込みます。拡張ヘッダーを付けて作成したファイルは、拡張ヘッダーを付けて更新する必要があります (「機能修飾子」の E フラグの説明を参照)。拡張ヘッダーなしで作成したファイルは、拡張ヘッダーを付けて修正することはできません。

t

内容の一覧表示。指定されたファイルがtarfile に検出されるごとに、ファイル名が表示されます。file 引数を指定していない場合は、tarfile のファイル名全部と関連する拡張属性が表示されます。v 機能修飾子をともに指定すると、指定したファイルの追加情報が表示されます。

u

更新。指定された file が tarfile にまだ入っていない場合、または最後に tarfile へ書き込まれて以来変更があった場合は、file は tarfile の最後に追加されます。更新には時間のかかる場合があります。SunOS 5.x システム上で作成されたtarfile は SunOS 4.x システム上では更新できません。拡張ヘッダーを付けて作成したファイルは、拡張ヘッダーを付けて更新する必要があります (「機能修飾子」の E フラグの説明を参照)。拡張ヘッダーなしで作成したファイルは、拡張ヘッダーを付けて修正することはできません。

x

抽出または復元。指定された file が tarfile から抽出され、( 現在のディレクトリからの相対パスで ) tarfile で指定されたディレクトリに書き込まれます。抽出するファイルとディレクトリには、相対パス名を使用してください。

tar アーカイブに含まれる絶対パス名を復元するときには、絶対パス名を使用します。つまり、先頭のスラッシュ (/) は取り除かれません。

デフォルトでは、絶対パス名 (/ 文字で始まる) の先頭のスラッシュは削除されるので、このようなファイルやディレクトリは現在のディレクトリと相対的に抽出されます。

指定されたファイルが、ディレクトリで内容が tarfile に書き込まれている場合は、このディレクトリは再帰的に抽出されます。可能な場合、所有者、変更時間、およびモードが復元されます。それ以外の場合、所有者を復元するにはスーパーユーザーになる必要があります。文字型特殊デバイスと ブロック型特殊デバイス(mknod(1M) で作成) は、スーパーユーザーによってのみ抽出できます。file 引数が指定されない場合は、tarfile の全体の内容を抽出します。tarfile に同じ名前のファイルが複数ある場合、各ファイルがパス名どおりのディレクトリに書き込まれ、それ以前のファイルを上書きします。アーカイブからファイルを抽出する場合は、ファイル名にワイルドカードを使用することはできません。この場合には、次の形式のコマンドを使用してください。

tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | \
     grep 'pattern' `

r または u 機能を使って作成した tarfile から抽出した場合、ディレクトリ修正時間が正しく設定されないことがあります。また、これらの機能は、バックスペースや追加などの機能がないというテープドライブの制限のために、多くのテープドライブでは使用できません。

ru、または x 機能、あるいは X 機能修飾子を使用する場合には、tarfile 中の対応するファイルとパス名が一致している必要があります。たとえば、./ thisfile を抽出するためには、./thisfile を指定する必要があります。thisfile ではありません。t 機能はどのように各ファイルが保存されているかを表示します。

機能修飾子

次の文字は、使用する機能文字に付けて使用します。

b blocksize

ブロック化因数。生の磁気テープアーカイブに読み取り、または書き込みを する場合に使用します (下記の f を参照) 。blocksize 引数では tarfile 上で実行した読み取りや書き込みの各操作で含まれる 512 バイトの テープブロックの数を指定します。最小は 1、デフォルトは 20 です。最大値は使用可能なメモリーの総量と使用するテープデバイス固有のブロック化条件によって決まります (詳細は mtio(7I) を参照)。最大値は INT_MAX/512 (4194303) を超えることはできません。

テープアーカイブを読み取る場合は、実際のブロック化因数が自動的に検出され、名目上のブロック化因数 (b 修飾子を指定していない場合は、blocksize 引数の値かデフォルト値) よりも少ないか、あるいは等しい値が割り当てられます。実際のブロック化因数が名目上のブロック化因数よりも大きい場合、結果は読み取りエラーになります。「使用例」の「例 5」を参照してください。

B

ブロック。tar は、(必要であれば) 複数の読み取り操作を実行し、ブロックを埋めるのに十分なバイト数だけを読み取ります。パイプやソケットは、それ以降の入力がある場合でもブロックを部分的に返すので、この機能修飾子は tar がイーサネットを介して動作することを可能にしています。標準入力 () から読み取る場合、tar がブロックを埋めるのに十分なバイト数を読み取れるようにこの機能修飾子がデフォルトで選択されます。

D

データ変更の警告。cr、または u 機能文字と一緒に使用します。t または x 機能文字と一緒に使用した場合は、無視されます。ファイルのアーカイブ中にファイルのサイズが変わった場合には、この状態はエラーではなく警告と見なしてください。メッセージは書き込まれますが、終了ステータスには影響しません。

E

拡張ヘッダーを付けて tarfile を書き込みます (cru オプションで使用可能、t または x 機能文字と一緒に使用した場合は、無視されます)。tarfile が拡張ヘッダー付きで書き込まれた場合、その修正時間は秒単位ではなくマイクロ秒単位で続けられます。さらにファイル名の文字数が PATH_MAX 文字 (保存には E フラグが必要) 以下で、ファイルサイズが 8G バイトを超えるファイルの場合もサポートします。E フラグは、サイズの大きいファイルや名前の長いファイル、またはその両方の場合、あるいはユーザー ID またはグループ ID が 2097151 を超えるときに保存したい場合、マイクロ秒単位の時間を取りたい場合に有用です。

f

ファイル。tarfile の名前として tarfile 引数を使用します。f を指定すると、/etc/default/tar を検索しません。f を省略した場合には、tar は TAPE 環境変数 (設定されている場合) が示すデバイスを使用します。そうでない場合、tar は、/etc/default/tar に定義されているデフォルト値を使用します。archiveN 文字列に一致する数字が出力デバイスとして、ファイル内のブロック化とサイズの指定とともに使用されます。たとえば、

tar -c 2/tmp/*

このコマンドは、/etc/default/tar において archive2 に指定されているデバイスに出力を書き込みます。

tarfile の名前が である場合は、tar は標準出力への書き込みあるいは標準入力からの読み取りのいずれか適当な操作を行います。tar はパイプラインの先頭もしくは末尾として使用することができます。また、次のコマンドを使えば、tar は、ディレクトリ階層を移動するためにも使用することができます。

example% cd fromdir; tar cf − .| (cd todir; tar xfBp −)
F

F 引数を 1 つ指定すると、tar は tarfile から SCCS および RCS の名前のついたすべてのディレクトリを除外します。FF のように引数を 2 つ指定すると、tar は SCCS および RCS の名前のついたすべてのディレクトリ、接尾辞として .o を持つすべてのファイル、および errscorea.out という名前のファイルをすべて除外します。

h

シンボリックリンクをたどり、通常ファイルあるいはディレクトリとして扱います。通常、tar はシンボリックリンクをたどりません。

i

ディレクトリ・チェックサム・エラーを無視します。

j

c モードのみ。生成されたアーカイブを bzip2 で圧縮します。抽出またはリストモードでは、このオプションは無視されます。この実装では、アーカイブの読み取り時に bzip2 圧縮タイプが自動的に認識されます。アップグレード/置換は、まず圧縮解除してから、同じメカニズムを適用して自動的にアーカイブを圧縮します。

l

リンク。保管されるファイルのリンクで、tar が解決できないものがある場合、エラーメッセージを出力します。l が指定されない場合は、エラーメッセージは表示されません。

m

修正。ファイルの変更時間を抽出した際の時間に設定します。この機能修飾子は、x 機能とともに用いた場合のみ有効です。

n

テープデバイスにないファイルを読み込みます。tar は、アーカイブ内部を読み取り専用で探すことができるため、アーカイブの読み込みは速くなります。

o

オーナーシップ。抽出されたファイルに、tarfile 上のユーザー識別子やユーザーのグループ識別子を使用する代わりに、プログラムを実行するユーザーのユーザー識別子や グループ識別子を割り当てます。これは、ルートではないユーザーに対してデフォルトで行われます。o 機能修飾子が設定されておらず、さらにユーザーがルートである場合、抽出されたファイルは、tarfile 上のファイルのグループ識別子とユーザー識別子を使用します (詳細は、chown(1) を参照)。o 機能修飾子は、x 機能とともに用いた場合のみ有効です。

p

現在の umask(1) を無視して、指定されたファイルを元のモード、および ACL が有効であれば、ACL を戻します。スーパーユーザーとして x 機能文字を指定して起動した場合は、これがデフォルトの動作になります。スーパーユーザーである場合は、SETUID およびスティッキ情報も抽出し、ファイルはスーパーユーザーの所有ではなく、元の所有者とアクセス権に復元されます。この機能修飾子を、c 機能とともに使用した場合、ACL はほかの情報とともに tarfile に作成されます。ACL の入った tarfile が tar の前のバージョンによって抽出された場合、エラーが起こることがあります。

P

アーカイブ作成の場合、アーカイブのディレクトリエントリに最後の (/) を追加しません。

アーカイブ抽出の場合、パス名を保持します。デフォルトでは、アーカイブ抽出時に絶対パス名 (/ 文字で始まる) の先頭のスラッシュが削除されます。また、tar はパス名にドットドット ( ..) が含まれるアーカイブエントリの抽出を拒否します。

このオプションは、これらの動作を無効にします。

T

この修飾子を使用できるのは、システムが Trusted Extensions で構成されている場合だけです。

この修飾子を機能文字 cr、または u と併用して tarfile の作成、置換、または更新を行う場合、 保存対象の各ファイルやディレクトリに関連付けられた機密ラベルが、tarfile 内に格納されます。

T を指定すると、機能修飾子 p も指定されたものとみなされます。

機能文字 x と併用して tarfile の抽出を行う場合、tar プログラムは、アーカイブ内に指定されたファイルの機密ラベルが抽出先ディレクトリの機密ラベルに等しいかどうかを確認します。等しくない場合、ファイルは復元されません。この操作は大域ゾーンから起動してください。アーカイブ内のファイルが相対パス名を持つ場合、そのファイルは、同じラベルを持つ対応するディレクトリが使用できるときには、そのディレクトリに復元されます。これは、そのファイルに等しいラベルを持つゾーンのルートパス名を、現在の抽出先ディレクトリの前に付加することで実現されます。そのようなゾーンが存在しない場合、ファイルは復元されません。

Trusted Solaris 8 のラベル付きアーカイブの抽出については、限定されたサポートが提供されます。機密ラベルとマルチレベルディレクトリ指定のみが解釈されます。特権指定と監査属性フラグは自動的に無視されます。シングルレベルディレクトリへのシンボリックリンクを含むマルチレベルディレクトリ指定は、同じラベルを持つゾーンが使用可能な場合には、そのゾーンの相対パス名へとマップされます。このサポートの目的は、ホームディレクトリの移行を行いやすくすることです。アーキテクチャーが異なるため、Trusted Solaris 8 の任意のラベル付きファイルを Trusted Extensions の同一パス名に抽出することはできません。ファイルを抽出できるのは、そのアーカイブ上のラベルが抽出先のラベルに一致する場合だけです。

v

冗長。機能文字に続けて、各ファイル名を出力します。t 機能とともに使用すると、v は、tarfile エントリに関する詳しい情報も提供します。表示は ls(1) コマンドの –l オプションによる出力形式に似ています。

w

処理の指示。とるべき処理とファイル名を出力し、ユーザーの確認を待ちます。応答が肯定である場合、この動作が実行されます。そうでない場合には処理は行われません。この機能修飾子は、t 機能と同時には使えません。

X

除外。機能 cx、または、t を使用した場合に、tarfile から除外されるファイル (あるいはディレクトリ) の相対パス名のリストを収めたファイルとして、exclude-file 引数を使用します。include-file の行末に不要なスペースを置かないように注意してください。また、各行頭にも不要なスペースを置かないように注意してください。除外するファイルの最初の文字列に対する一致には、改行で分かれている行全体が使用されます。exclude-file 内の行は厳密に照合されます。したがって、tar が相対パス名をバックアップしている場合、「/var」のようなエントリを指定しても、/var ディレクトリは除外されません。このような状況では、エントリを「./var」と指定する必要があります。tar コマンドは、exclude-file 内にあるシェルのメタ文字を展開しません。したがって、「*.o」のようなエントリを指定しても、名前に接尾辞「.o」が付いたすべてのファイルを除外するような効果はありません。複雑なファイルのリストを除外する場合は、find(1) コマンドを適切な条件で使用するなどして、exclude-file を生成する必要があります。

引数 1 つにつき 1 つの exclude-file で、複数の X 引数を使用できます。この場合、組み込まれたファイルが存在する場合には (−I include-file オペランドを参照)、除外されたファイルは組み込まれたファイルよりも優先されます。あるファイルが exclude-fileinclude-file の両方のファイル (またはコマンド行上) で指定されていれば、そのファイルは除外されます。

z

c モードのみ。生成されたアーカイブを gzip で圧縮します。抽出またはリストモードでは、このオプションは無視されます。この実装では、アーカイブの読み取り時に gzip 圧縮タイプが自動的に認識されます。アップグレード/置換は、まず圧縮解除してから、同じメカニズムを適用して自動的にアーカイブを圧縮します。

Z

c モードのみ。生成されたアーカイブを compress で圧縮します。compress(1) を参照してください。抽出またはリストモードでは、このオプションは無視されます。この実装では、アーカイブの読み取り時に compress 圧縮タイプが自動的に認識されます。アップグレード/置換は、まず圧縮解除してから、同じメカニズムを適用して自動的にアーカイブを圧縮します。

@

拡張属性をアーカイブに取り込みます。デフォルトでは、tar は拡張属性をアーカイブに取り込みません。このフラグを使用すると、tar はファイルが拡張属性を持っているかどうかを調べて、持っていれば、拡張属性をアーカイブに取り込みます。アーカイブにおいて、拡張属性は特殊な種類のラベルを持つ特殊なファイルとして格納されます。この修飾子を x 機能と一緒に使用すると、拡張属性は通常のファイルのデータと一緒にテープから抽出されます。拡張属性ファイルは、通常のファイルのデータの一部としてのみ抽出できます。拡張属性ファイルだけを明示的に抽出しようとすると無視されます。

/

拡張システム属性をアーカイブに取り込みます。デフォルトでは、tar は拡張システム属性をアーカイブに取り込みません。このフラグを使用すると、tar はファイルが拡張システム属性を持っているかどうかを調べて、持っていれば、拡張属性をアーカイブに取り込みます。アーカイブにおいて、拡張システム属性は特殊な種類のラベルを持つ特殊なファイルとして格納されます。この修飾子を x 機能と一緒に使用すると、拡張システム属性は通常のファイルのデータと一緒にテープから抽出されます。拡張システム属性ファイルは、通常のファイルのデータの一部としてのみ抽出できます。拡張属性ファイルだけを明示的に抽出しようとすると無視されます。

[0-7]

テープをマウントする代替ドライブを選択します。デフォルトは、/etc/default/tar に指定されています。数字または f 機能修飾子が指定されなければ、0 を持つ /etc/default/tar 中のエントリがデフォルトになります。

使用法

検出するファイルが 2G バイト (231 バイト) 以上ある場合の tar の動作については、largefile(5) を参照してください。

実際のブロック化因数の自動決定は、パイプやソケットからの読み取り時には正しく行われないことがあります (B 機能修飾子を参照)。

1/4 インチのストリームテープは 512 バイト単位のブロック化因数を持ちます。すべてのブロック化因数を使用して、読み取りまたは書き込みが可能です。

この機能修飾子は、ディスクファイルや ブロック型特殊デバイス上の アーカイブに対して動作しますが、主としてテープデバイス用を目的としています。

tar のヘッダー形式の情報については、archives.h(3HEAD) を参照してください。

使用例 1 ユーザーのホームディレクトリのアーカイブを作成する

tar を使用して、ドライブ /dev/rmt/0 にマウントされたテープにユーザーのホームディレクトリのアーカイブを作成する例を示します。

example% cd
example% tar cvf /dev/rmt/0 .
messages from tar 

c 機能文字は、アーカイブの作成を意味します。v 機能修飾子は、tar の動作状況を説明するメッセージを出力します。f 機能修飾子は、tarfile を指定している (この例では /dev/rmt/0) ことを示します。コマンド行の最後のドット (.) は現在のディレクトリを示し、f 機能修飾子の引数になります。

次のコマンドで、 tarfile の内容の一覧を表示します。

example% tar tvf /dev/rmt/0

POSIX ロケールでは、次のように出力されます。


rw−r−−r−−   1677/40    2123    Nov  7 18:15 1985    ./test.c
...
example%

各カラムは次の意味を持ちます。

  • カラム 1 は、./test.c へのアクセス権

  • カラム 2 は、./test.c へのアクセス権

  • カラム 3 は、./test.c のバイトサイズ

  • カラム 4 は、./test.c の修正時刻。LC_TIME カテゴリが POSIX ロケールに設定されていない場合、形式や日付順フィールドが異なって使用されることがあります。

  • カラム 5 は、./test.c へのアクセス権

アーカイブから、ファイルを 抽出するためには、次を使用します。

example% tar xvf /dev/rmt/0
messages from tar
example%

テープ上に複数のアーカイブファイルがある場合は、それぞれのファイルは、 EOF マーカによって次のファイルと区切られます。tar を使用して複数のアーカイブファイルが入っているテープから 1 番目と 2 番目のアーカイブファイルを読ませる場合、以下のように f 機能修飾子として渡すテープデバイス名は non-rewind 指定のある方を使用してください。

example% tar xvfp /dev/rmt/0n read first archive from tape
messages from tar
example% tar xvfp /dev/rmt/0n read second archive from tape
messages from tar
example%

以前のリリースでは、前述の処理が正しく動作しなかったり、mt(1)tar の実行との間に調整が必要になったりする場合が ありますので注意してください。以前のリリースでの動作をエミュレートするには、BSD 用の動作を行う b 文字を含んだ non-rewind のデバイス名を 使用してください。詳細については mtio(7I) マニュアルページの「Close Operations」の項を参照してください。

使用例 2 デフォルトのテープドライブ 0 への /usr/include および /etc からのファイルのアーカイブ

デフォルトのテープドライブ 0/usr/include のファイルおよび /etc のファイルを保存するためには、次を使用します。

example% tar c -C /usr include -C /etc .

このコマンドによって保存された tarfile からの内容の一覧を表示すると、たとえば次のようになります。

include/ 
include/a.out.h
and all the other files in /usr/include ...
./chown and all the other files in /etc 

include の下にあるすべてのファイルを抽出するためには、次を使用します。

example% tar xv include
x include/, 0 bytes, 0 tape blocks \ 
    and all files under include ...
使用例 3 ネットワークを介してのファイルの転送

tar を使用して、ネットワークを介してファイルを転送する例を示します。最初に、ローカルマシン (example) からリモートシステム (host) 上のテープへファイルを保管する方法を示します。

example% tar cvfb − 20 files| \
    ssh host dd of=/dev/rmt/0 obs=20b
messages from tar
example%

前述の例では、c キー文字を使用して tarfile を作成し、v 機能修飾子により tar からの冗長出力を要求し、f機能修飾子を用いて出力 tarfile の名前を指定し ( で、標準出力を指定)、b 機能修飾子によりブロックサイズ (20) を指定しています。ユーザーがブロックサイズを変更したい場合は、ユーザーは、tar コマンドおよび dd コマンド両方のブロックサイズ引数を変更する必要があります。

使用例 4 リモートシステム上のテープからローカルシステムへファイルを戻す

次に、tar を使用して、リモートシステム上のテープから ローカルシステムへファイルを戻す例を示します。

example% ssh -n host dd if=/dev/rmt/0 bs=20b | \
    tar xvBfb − 20 files
messages from tar
example%

前述の例では、x キー文字を使用して tarfile からファイルの抽出を行い、v 機能修飾子により tar からの冗長出力を要求し、B 機能修飾子によりパイプから読み取りを行うように tar に指示し、f 機能修飾子を用いて入力 tarfile の名前を指定し ( で、標準入力を指定)、b 機能修飾子によりブロックサイズ (20) を指定しています。

使用例 5 ホームディレクトリのアーカイブの作成

次に実際のブロック化因数を 19 にして /dev/rmt/0 上にホームディレクトリのアーカイブを作成する例を示します。

example% tar cvfb /dev/rmt/0 19 $HOME

b 機能修飾子を使用しないでアーカイブの実際のブロック化因数を 認識するためには、次を使用します。

example% tar tvf /dev/rmt/0
tar: blocksize = 19
...

実際のブロック化因数 よりも大きい名目上のブロック化因数を使用して、アーカイブの実際のブロック化因数を 認識するためには、次を使用します。

example% tar tvf /dev/rmt/0 30
tar: blocksize = 19
...

実際のブロック化因数に対して 小さすぎる名目上のブロック化因数を使用して、アーカイブの実際のブロック化因数を 認識しようとした場合は次のようになります。

example% tar tvf /dev/rmt/0 10
tar: tape read error
使用例 6 圧縮アーカイブの作成

次の例では、bzip を使用して圧縮アーカイブを作成します。

example% tar cjf tarfile /tmp/*

圧縮ファイルの名前は tarfile.bz2 です。

この場合、代わりに次のコマンドシーケンスを使用しても、同じ圧縮アーカイブが作成されます。


example% tar cf tarfile /tmp/*
example% bzip2 tarfile

ただし、中間ファイルの作成および削除は行われません。機能修飾子 z および Z も同様に動作しますが、それぞれ gzip および compress を使用します。

次の例では、compress を使用して圧縮アーカイブを作成します。

example% tar cZf tarfile /tmp/*

圧縮ファイルの名前は tarfile.Z です。

次の例では、gzip を使用して圧縮アーカイブを作成します。

example% tar czf tarfile /tmp/*

圧縮ファイルの名前は tarfile.gz です。

使用例 7 圧縮アーカイブからのファイルの抽出

次の例では、圧縮アーカイブからファイルを抽出します。bzip2 圧縮モードを使用してアーカイブを圧縮した場合


example% tar xvf tarfile.bz2
example% tar xvfj tarfile.bz2
example% bzcat tarfile.bz2 | tar xvf -

compress 圧縮モードを使用してアーカイブを圧縮した場合


example% tar xvf tarfile.Z
example% tar xvfZ tarfile.Z
example% zcat tarfile.Z | tar xvf -

gzip 圧縮モードを使用してアーカイブを圧縮した場合


example% tar xvf tarfile.gz
example% tar xvfz tarfile.gz
example% gzcat tarfile.gz | tar xvf -

環境変数

TMPDIR

デフォルトでは、一時ファイルは /tmp に作成されます。それ以外の場合、tar は TMPDIR で指定したディレクトリを使用します。

tar の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LC_COLLATE、LC_CTYPE、LC_MESSAGES、LC_TIME、TZ、および NLSPATH。

肯定応答は、ユーザーのロケールの LC_MESSAGES カテゴリの yesexpr キーワードで定義されている拡張正規表現を使用して処理されます。LC_COLLATE カテゴリに指定されているロケールは、yesexpr に定義されている式に使用される範囲、同等クラス、および複数文字照合要素の動作を定義します。LC_CTYPE に指定されているロケールは、テキストデータのバイト列を文字として解釈するロケールや、yesexpr に定義されている式に使用される文字クラスの動作を定義します。locale(5) を参照してください。

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

>0

エラーが発生した。

ファイル

  • /dev/rmt/[0-7][b][n]

  • /dev/rmt/[0-7]l[b][n]

  • /dev/rmt/[0-7]m[b][n]

  • /dev/rmt/[0-7]h[b][n]

  • /dev/rmt/[0-7]u[b][n]

  • /dev/rmt/[0-7]c[b][n]

  • /etc/default/tar

/etc/default/tar の設定は次のようになります:

archive0=/dev/rmt/0
archive1=/dev/rmt/0n
archive2=/dev/rmt/1
archive3=/dev/rmt/1n
archive4=/dev/rmt/0
archive5=/dev/rmt/0n
archive6=/dev/rmt/1
archive7=/dev/rmt/1n

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
CSI
有効
インタフェースの安定性
確実

関連項目

ar(1), basename(1), cd(1), chown(1), compress(1), cpio(1), csh(1), dirname(1), find(1), ls(1), mt(1), pax(1), setfacl(1), umask(1), mknod(1M), archives.h(3HEAD), attributes(5), environ(5), fsattr(5), largefile(5), mtio(7I)

診断

キー文字の誤りとテープ読み取り/書き込みエラー、およびリンクテーブルを保持する十分なメモリーがないという 診断メッセージが出力されます。

ファイルの n 番目に現れるものをアクセスする方法がありません。

テープエラーの処理は不十分です。

tar アーカイブ形式ではアーカイブヘッダーにユーザー ID およびグループ ID を 2097151 まで格納することができます。この値よりも大きい UID および GID を持つファイルは 60001 の UID および GID で格納されます。

アーカイブを作成するときに、複数のロケールで実行している処理によってファイル名を作成したファイルを含んでいる場合、アーカイブの作成とアーカイブからのファイルの抽出のどちらも、フル 8 ビットコードセットを使用するロケール (たとえば、en_US ロケール) 上で使用すべきです。

1/4 インチのアーカイブテープ用のテープドライブはバックスペースできないので、このようなテープでは r オプションと u オプションは使用できません。

tar にはオプションがないため、標準の「−−」引数は必要ありません。ほかのユーティリティーでは、この引数は通常、オプションの認識を停止するために使用されます。tar に指定した場合、この引数は最初の引数として認識されるだけで、無視されます。

−C directory file−I include-file は複数の引数オペランドをとります。したがって、「−C」または「−I」という名前のファイルを保管または抽出するには、次のいずれかの方法を使用します。

  1. これらのファイルを、スラッシュ (/) 文字を含む file オペランドとしてコマンド行に指定します。たとえば、「/home/joe/−C」や「./−I」です。

  2. これらのファイルを含む include-file を作成して、−I include-file オプションで指定します。

  3. これらのファイルが存在するディレクトリを指定します。

    -C directory -C

    または

    -C directory -I
  4. これらのファイルが存在するディレクトリ全体を指定します。

    -C directory .