構文
tar [-]key [arg ...] [file | -C directory] ...
説明
tar コマンドは、磁気テープ、フレキシブルディスク、または通常ファイルに対して、ファイルのアーカイブの保存および復元を行います。
デフォルトのアーカイブファイルは、 /dev/rmt/0m です。
下記の -f を参照してください。 このコマンドの動作は key 引き数により制御されます。
引き数
| key | | 1 文字の機能英字、および 0 個以上の機能修飾子を任意の順序で指定した文字列です。 key に空白文字を入れることはできません。 key 文字列には (他の HP-UX コマンドでオプションを指定する場合のように)、ハイフン
(-) を前に付けることが可能ですが、必須ではありません。 |
| arg ... | | b および f の機能修飾子では、それぞれ arg 引き数が必要です (下記参照)。 b と f の両方を指定する場合、 arg 引き数の順序は、修飾子の順序に一致していなければなりません。 arg 引き数を指定する場合は、 key および arg 引き数同士を空白文字で区切る 必要があります。 |
| file | | 復元または保存されるファイルを指定します。 file がディレクトリ名の場合、そのディレクトリに含まれるファイルおよび (再帰的に) サブディレクトリを参照します。 |
| -C directory | | tar は、 directory への chdir() を実行します chdir(2) を参照)。 後続する引き数 file および -C directory は directory に相対です。 これにより、近くの親または共通した親も持たない複数の
ディレクトリでも、短い相対パス名でアーカイブできるようになります。 |
file の値は、 アーカイブの中に格納されます。 directory の値は格納されません。
機能キー
key の機能部分は以下の英字のいずれかにより指定します。
| c | | 新しいアーカイブを作成します。 最後のファイル の後に書き込むのではなく、アーカイブの先頭から書き込みます。
アーカイブ中の以前の情報は、すべて上書きされます。 |
| r | | 指定された file をアーカイブの終端に追加します。 アーカイブに追加するときのブロック化係数は、
アーカイブ作成のときと同じ値を使用しなければなりません。 アーカイブがテープの場合は、このオプションは使えません。 |
| t | | アーカイブにある全ファイルの名前のリストを表示します。 v 機能修飾子を追加すると、ファイルモードと所有者番号も表示されます。 ファイルの名前は、テープ上に出現するたびに表示されます。 |
| u | | 指定の file がアーカイブ中に存在しないか、または前回アーカイブに書き込まれてから修正が行われている場合、アーカイブに追加します。
アーカイブを更新するときのブロック化係数は、 アーカイブ作成のときと同じ値を使用しなければなりません。 |
| x | | アーカイブから指定された file を抽出し、システムに復元します。 指定されたファイルが、以前アーカイブに内容が書き出されたディレクトリと
一致する場合、このディレクトリは (再帰的に) 抽出されます。 テープ上の指定された file がシステムに存在しない場合、 file は以下のように作成されます。 ユーザー、グループ、および他の保護機能はテープから復元されます。 機能修飾子 m を指定しない場合にのみ、修正時刻がテープから復元されます。 ファイルのユーザー ID およびグループ ID は、通常復元を行うプロセスのものになります。 セットユーザー ID、セットグループ ID、およびスティッキービットは
自動設定されません。 機能修飾子 o および p が、保護機能の復元を制御します。
詳細は以下を参照してください。
ファイルが存在する場合、モードは変更されませんが、セットユーザー
ID、セットグループ ID、およびスティッキービットはクリアされます。 file 引き数を省略すると、アーカイブの内容全体が抽出されます。
アーカイブ内に同名のファイルが複数ある場合、最後のファイルが、それ以前のファイルを上書きする点に注意してください。 |
機能修飾キー
上記の機能英字に加えて、以下の機能修飾子が使用できます (機能キーと修飾子の組み合せによっては、一緒に指定できないものもあります)。
| A | | tar がファイルのアクセス制御リストをアーカイブしなかったという警告メッセージを抑止します。
デフォルトでは、 tar はオプションの ACL エントリーを持つファイルごとに警告メッセージを書き出します。 |
| b | | アーカイブレコードに対するブロック化係数として次の arg 引き数を使用します。 デフォルトは 20 です。 最大値は、少なくとも 20 です。
ただし、修飾子 f - で標準入力が指定された場合、デフォルトのブロック化係数は 1 です。 9 トラックテープの読み込み時 (キー文字 x および t)、
ブロック化係数は自動的に決定されます。 9 トラックでは、物理テープレコード長はブロックサイズと同じです。
ブロックサイズは、論理レコードサイズとブロック化係数 (1 ブロックごとの論理レコード数) を掛けたものとして定義されます。 フレキシブルディスクおよびカートリッジテープを読み込むとき、デフォルト以外のブロック化係数で書き込まれていれば、ブロック化係数を指定しなければなりません。 tar ファイルが、ファイルの書き込み時に使用されたブロック化係数と異なるブロック化係数を使用して読み込まれた場合、ファイルの終わりではエラーが発生することがありますが、読み込み時に実際のエラーが発生するとは限りません。
この問題を避けるためには、性能はある程度損なわれる可能性がありますが、
ブロック化係数として 1 を使用します。 論理レコードが他のプログラムにより他の場所でどのように定義されているかにかかわらず (例えば、
ASCII テキストファイル内の可変長レコード (行) など)、 tar は 512 バイトの論理レコードを書き込みます。 |
| e | | アーカイブするファイルにエクステント属性があると、異常終了します。
この理由で、 tar が異常終了した場合、 一部作成されたあて先のファイルは削除されません。 |
| f | | tar は、次の arg 引き数を /dev/rmt/0m の代わりにアーカイブの名前として使用します。
ファイルの名前が - の場合、 tar は標準出力への書き込みまたは標準入力からの読み込みを適宜行います。また、デフォルトのブロック化係数は 1 になります。
したがって、 tar がパイプラインの最初または最後に使用できます (「例」を参照)。 |
| h | | 通常ファイルまたはディレクトリに対してと同様に、 tar がシンボリックリンクをたどるように強制します。
通常、 tar はシンボリックリンクをたどりません。 |
| l | | 保存するファイルに対するリンクをすべて解決できない場合にエラーメッセージを出すように、 tar に指示します。 l を指定しないと、エラーメッセージは出力されません。 |
| m | | アーカイブに書き込まれた修正時刻を復元しないように、 tar に指示します。
ファイルの修正時刻は、抽出時刻となります。 |
| N | | POSIX フォーマットのアーカイブを書き込みます。 このフォーマットでは、ファイル名の長さは最大 256 文字まで可能となり、
通常のファイル、キャラクタ型およびブロック型の各特殊デバイス、 リンク、シンボリックリンク、ディレクトリ、および
FIFO 特殊ファイルを正しくアーカイブおよび復元することができます。 また、各ファイルのユーザーおよびグループ名を保存し、 p 機能修飾子付きで復元する際にはファイルの
ユーザー ID および グループ ID の決定にこれらの名前を使用します。
これはデフォルトフォーマットです。 |
| o | | tar の旧バージョンでは入力しても扱えないディレクトリ情報を書き出さないようにします。通常、 tar はディレクトリの所有者およびモードを指定する情報をアーカイブに書き出します。 tar の旧バージョンは、この情報を検出すると、以下の形式のエラーメッセージを出力します。 o が読み込みに指定された場合、抽出された file のユーザー ID とグループ ID はテープ上の値ではなくプログラムを実行中のユーザーのユーザー
ID およびグループ ID になります。 これが一般ユーザーのデフォルトですが、機能修飾子 p を使用することにより、システム保護で許容される限り、無効にすることができます。 |
| O | | POSIX 以前の旧フォーマットのアーカイブを書き込みます |
| p | | file は、可能ならばアーカイブに書き込まれた元のモードおよび所有者で復元されます。
これがスーパーユーザーのデフォルトですが、機能修飾子 o により無効にすることができます。
システム保護のために一般ユーザーが chown() を実行できない場合、エラーは無視され、所有者は復元するプロセスの所有者と同じになります chown(2) を参照)。 chown 操作が正常に行われると、 chmod() により定義された保護情報に従って、セットユーザー
ID、 セットグループ ID、およびスティッキービット情報が復元されます。 |
| nd | | 特定の 9 トラックテープドライブおよび記録密度を指定します。ここで、 n はテープドライブ番号 0-7 であり、 d は以下のような記録密度となります。 l =
低密度 (800 bpi)、 m = 中密度 (1600 bpi)、 h =
高密度 (6250 bpi)。 この修飾子は、9 トラックテープをマウントするドライブを選択します。
デフォルトは 0m です。 |
| v | | 通常、 tar は何も表示しないで動作します。 v (冗長) 機能修飾子により、 tar は処理する各ファイル名を、前に機能の英字を付けて表示します。 v を機能 t と併用すると、名前だけでなくアーカイブエントリーに関するより詳細な情報を表示します。 |
| V | | t オプションと併用すると、 アーカイブされたファイルのタイプを示す英字も出力する点を除いて、
機能修飾子 v と同じです。 |
| w | | tar は、これから実行する動作とファイル名を出力し、ユーザーの確認を待ちます。
ユーザーが y と答えると、動作が実行されます。
それ以外の入力はすべて"no"を意味します。 |
テープの終端に達すると、 tar は新しい特殊ファイルをユーザーに要求し、処理を続行します。
9 トラックテープドライブを出力装置として使用する場合は、バークレー互換モードになっていなければなりません mt(7) を参照)。
機能修飾子 O および N は、 tar がアーカイブを書き込む際のフォーマットを指示します。抽出において tar は使用されている機能修飾子を問わず、どちらのフォーマットも読み取りできます。
多言語化対応
環境変数
LC_TIME は、 -v オプション
でアーカイブの内容をリストする際の日付および時刻文字列の出力のフォーマットおよび内容を決定します。
LANG は各言語で y に相当する文字を決定します (yes/no の問合わせ用)。
LC_TIME が指定されていない場合、または空文字列に設定されている場合は、
デフォルトとして LANG の値が使用されます。
LANG が指定されていない場合、または空文字列に設定されている場合、
デフォルトの "C" lang(5) を参照) が使用されます。
多言語対応変数に無効な値が設定されている場合、 tar は、すべての多言語対応変数に"C"が設定されているものとして動作します。 environ(5) を参照してください。
サポートされるコードセット
シングルバイト、およびマルチバイトの文字コードセットがサポートされています。
診断
不当なキー文字が指定された場合、テープ読み込み/書き込みエラーが発生した場合、 またはリンクテーブル用のメモリが不足した場合、 tar はエラーの内容を説明するメッセージを出力します。
例
/dev/rfd.0 に新しいアーカイブを作成し、
デフォルトのブロック化係数 20 を使用して、 file1 および file2 をそれにコピーします。 key には、1 文字の機能英字 (c) と、2 文字の機能修飾子
(v および f) を指定します。
tar cvf /dev/rfd.0 file1 file2
/usr/include および /etc からファイルをアーカイブします。
tar cv -C /usr/include . -C /etc .
パイプライン中で tar を使用して、 fromdir の下のファイルシステム階層構造全体を todir にコピーします。
cd fromdir ; tar cf - . | ( cd todir ; tar xf - )
現在のディレクトリ中の my_project ディレクトリにある全ファイルおよび全ディレクトリを、
同じく現在のディレクトリ中の my_project.TAR というファイルにアーカイブします。
tar -cvf my_project.TAR my_project
警告
業界標準に準拠し相互運用性を確保するために、 tar は
8GB 以上のファイルのアーカイブや 2M 以上のユーザー/グループ ID を持つファイルはサポートしていません。
2M を超えるユーザー/グループ ID を持つファイルは、ユーザー名/グループ名が登録されていない場合は、現在のプロセスのユーザー/グループ
ID でアーカイブおよび復元されます。 (tar(4) 参照)
HP-UX リリース 8.0 以降、デフォルトのフォーマットは O から N に変更されました。
ヘッダ構造の内部制限のため、 N 機能修飾子を使用する際でも、256 文字未満のファイル名がすべて扱えるとは限りません。
ファイル名が扱えない場合、 tar はメッセージを出力し、ファイルをアーカイブしません。
N 機能修飾子を使用する際も、リンク名は 100 文字までに制限されます。
1 つのファイルが複数回アーカイブされている場合、そのうちの n 番目のものを指定することはできません。
テープエラーはきちんと処理されません。
機能キー u を用いると低速になる可能性があります。
アーカイブがディスク、フレキシブルディスク、 またはカートリッジテープ上のファイルであり、
出力時に指定されたブロック化係数がデフォルトではない場合、入力時にも同じブロック化係数を指定しなければなりません。
これは、ブロック化係数はアーカイブに明示的に保存されないためです。
この規則に従わずにアーカイブの「更新」または「追加」を行うと、 アーカイブを破壊する可能性があります。
tar の一部の前バージョンは、機能キー t にリストを指定した場合、ファイル名の選択的リスティングをサポートしていると
マニュアルに記載されていますが、この機能は 元のソースコードにはないので、これはドキュメントの誤りだと思われます。
絶対パス名を相対位置に復元する方法はありません。
tar は常に、アーカイブに書き出される情報をブロックサイズの次の倍数までパディングします。
したがって、小さなアーカイブを作成して 1 ブロックの情報を書き出す場合、 tar は 1 ブロックが書き出されたと報告しますが、
機能修飾子 b を使用した場合、 アーカイブの実際のサイズはこれより大きくなることがあります。
tar c0m は tar cm0 と同じでないことに注意してください。
ブロック型特殊デバイス上にアーカイブを作成しないでください。
作成しようとすると、過度の摩耗が発生し、寿命になる前にドライブハードウェア障害が起きます。
制約
r および u の機能キーは
QIC または 8mm デバイスではサポートされません。 QIC または 8mm でこれらのオプションを使用すると、 tar は異常終了して、次のメッセージを表示します。
tar: option not supported for this device
著者
tar は、 AT&T、 カリフォルニア大学バークレー校、
HP、 および POSIX で開発されました。
ファイル
/dev/rmt/*
/dev/rfd.*
/tmp/tar*
参照
ar(1), cpio(1), acl(5),mt(7)
標準準拠
tar: SVID2, SVID3, XPG2, XPG3