スポンサーリンク

TAR(1) FreeBSD 一般コマンドマニュアル TAR(1)

名称

tar − テープアーカイバ; "tar" アーカイブファイルの操作

書式

tar [[

]bundled-options Args] [gnu-style-flags][filenames | −C directory-name] ...

解説

tar は、歴史的な理由により ‘‘tape archiver’’ を省略して名付けられました。 tar プログラムは、 tarfile と呼ばれる tar フォーマットのアーカイブファイ ルを作成し、アーカイブにファイルを追加したり、またアーカイブからファイル を抽出したりします。 tarfile は通常磁気テープを指しますが、フロッピディス ケットや通常のファイルでも構いません。

通常、 tar コマンドラインの最初の引数は、機能文字および機能変更文字からな る単語であり、その前に ダッシュ (-) を付けても付けなくてもいいようになっ ています。単語には、次の機能文字のうち丁度 1 つを含んでいる必要がありま す: A, c, d, r, t, u, x, これらはそれぞれ、 追加 (append) 、 作成 (create) 、 差分 (difference) 、 置換 (replace) 、 リスト表示 (table of contents) 、 更新 (update) 、 抽出 (extract) を意味しています (下記に詳細 があります)。これらの他に、以下に詳細を述べる機能変更文字を、コマンド単語 に含めることができます。それらのいくつかは、コマンド単語内と同じ順でコマ ンドライン引数を要求します (使用例の節を参照)。機能文字と機能変更文字 は、GNU 形式の引数で指定することもできます (2 つのダッシュを最初に付け、1 つのコマンド単語ごとに機能文字か機能変更文字を 1 つだけ指定する)。アーカ イブへの追加、アーカイブからの抽出、そしてリスト表示のためにコマンドライ ン指定するファイル名には、シェルのパターンマッチ文字列を使用することがで きます。

機能

以下の機能のいずれか 1 つだけを必ず指定する必要があります。

       −A

−-catenate
−-concatenate

指定された (tar アーカイブ形式の) ファイルを tar アーカイ ブの末尾に追加します (追加する前の古い end-of-archive ブ ロックは削除されます)。これは、指定されたファイルがアーカ イブの中の 1 ファイルとなるのではなく、指定したファイルの 中に含まれているファイルを、最初に指定したアーカイブに追加 するという効果を持ちます。 注: このオプションは tarfile を 再書き込みする必要があるため、1/4 インチカートリッジテープ では動作しません。
−c
−-create

新しいアーカイブを作成して (もしくは古い内容を切り捨て て)、指定されたファイルをアーカイブに書き込みます。
−d
−-diff
−-compare

アーカイブの中のファイルと、それに相当するファイルシステム 内のファイルとの違いを調査します。
−-delete

指定されたファイルをアーカイブから削除します (1/4 インチ テープでは動作しません)。
−r
−-append

アーカイブの末尾にファイルを追加します (1/4 インチテープで は動作しません)。
−t
−-list

アーカイブ内容のリスト表示をします。もし引数として filename が指定されていれば、そのファイルだけがリスト表示 されます。そうでなければ、アーカイブに含まれるすべてのファ イルリストが表示されます。
−u
−-update

指定したファイルのうち、アーカイブ内のファイルよりもディス ク上のファイルの変更時刻が新しいものだけを追加します。1/4 インチテープでは動作しません。
−x
−-extract
−-get

アーカイブからファイルを抽出します。可能ならば、所有者、変 更時刻、ファイル属性はリストアされます。もし file 引数が指 定されていなければ、アーカイブ内の全ファイルが抽出されま す。もし filename 引数がテープ上のディレクトリ名にマッチし ていれば、そのディレクトリとディレクトリ内のファイルが抽出 されます (ディレクトリ内のすべてのディレクトリについても同 様に抽出されます)。もしアーカイブ内に、相当する同じファイ ルが複数含まれていれば (上記の −-append コマンドを参照)、 最後に含まれているものが他のすべてのファイルを上書きする形 で抽出されます。

オプション

tar の他のオプションは、組み合わせて使用することができます。 1 文字オプ ションは、コマンド単語の中で指定することができます。引数を与えるべきオプ ションの場合、オプションに続けて引数を指定します。1 文字オプションであれ ば、これに続くコマンドライン引数を使用します (以下の 使用例を参照してくだ さい)。

       −-help

tar のすべてのコマンドオプションについて一覧と解 説を表示します。
−-atime-preserve

テープに書かれている、ファイルのアクセス時刻をリ ストアします。 (inode の変更時刻が変更されること に注意してください!)
−b
−-block-size
number
読み書きするブロックサイズを number * 512-byte ブ ロック に設定します。
−B
−-read-full-blocks

短い読みだしブロックを、完全なブロックに再組み立 てします (4.2BSD パイプの読み込み用)。
−C
directory
−-directory
directory
残りの引数を処理する前に directory へ移動します。
−-checkpoint

アーカイブを読み書きする間に読み書きしたバッファ の数を表示します。
−f

[
hostname
:]file
−-file

[
hostname
:]file
指定された file (デフォルトは /dev/sa0) を読み書 きします。もし hostname が指定されていれば、 tarrmt(8) を使って、リモートマシン上の file を読 み書きします。 ‘‘-’’ はファイル名として使用される こともありますが、これは標準入力から読み出した り、標準出力へ書き出したりするために使用されま す。
−-force-local

コロンがある時でさえ、アーカイブファイルはローカ ルのものとします。
−F
file
−-info-script
file
−-new-volume-script
file
それぞれのアーカイブが終ると、スクリプトを実行し ます (暗黙の −M 指定が行なわれます)。
−-fast-read

ワイルドカードで指定されていないすべての抽出ター ゲットがアーカイブ内に見つかったら、その時点で終 了します。
−G
−-incremental

古い GNU-format インクリメンタルバックアップファ イルを作成/リスト/抽出します。
−g
file
−-listed-incremental
file
新しい GNU-format インクリメンタルバックアップ ファイルを作成/リスト/抽出します。
−h
−-dereference

シンボリックリンクをシンボリックのまま書き込みま せん。シンボリックリンクが指しているデータを書き 込みます。
−i
−-ignore-zeros

アーカイブの中の 0 ブロック (通常、End-Of-File を 意味する) を無視します。
−-ignore-failed-read

ファイルが読めなくても、非 0 のステータスで exit しません。
−j
−y
−-bzip
−-bzip2
−-bunzip2

アーカイブを bzip2(1) でフィルタリングします。
−k
−-keep-old-files

ディスク上に既にあるファイルを保持します。つま り、アーカイブから抽出するファイルは、ディスク上 のファイルへ上書きしません。
−K
file
−-starting-file
file
アーカイブの中の file から (抽出、リストなどを) 始めます。
−l
−-one-file-system

あるファイルシステム内にあるファイルだけでアーカ イブを作成します (他ファイルシステムへのマウント ポイントを跨ぎません)。
−L
number
−-tape-length
number
number
* 1024 バイト書き込んだ後でテープの交換を 要求します。
−m
−-modification-time

ファイルの変更時刻を抽出しません。
−M
−-multi-volume

マルチボリュームアーカイブを作成/リスト/抽出しま す。
−n
−-norecurse

作成時に再帰的にサブディレクトリを走査しません。
−-volno-file
file
ボリューム番号付きのファイル名です。
−N
date
−-after-date
date
−-newer
date
作成時間が date より新しいファイルだけを抽出しま す。
−-newer-mtime
date
変更時間が date より新しいファイルだけを抽出しま す。
−o
−-old-archive
−-portability

POSIX フォーマットではなく、V7 フォーマットのアー カイブを作成します。
−O
−-to-stdout

ファイルを標準出力に抽出します。
−p
−-same-permissions
−-preserve-permissions

保護情報を完全に抽出します。
−-preserve
−p −s
の指定と同じ効果を持ちます。
−P
−-absolute-paths

ファイル名から先頭の ‘/’ をとりません。
−R
−-record-number

メッセージ中にアーカイブ内のレコード番号を埋め込 み表示します。
−-remove-files

アーカイブに追加したファイルを、追加後に削除しま す。
−s
−-same-order
−-preserve-order

アーカイブ内から抽出するファイルを、指定された順 のままにします。
−-show-omitted-dirs

アーカイブ作成中に除外されたディレクトリを表示し ます。
−S
−-sparse

‘‘疎な’’ ファイルを効率的に扱うようにします。
−T
file
−I
file
−-files-from
file
file
から抽出もしくは作成するファイル名を得ます (1 行 1 ファイル名)。
−-null

null で終わっている名前を考慮し、 −T の振舞を変更 します。これは −C 指定を無効にします。
−-totals
−-create
によって書かれた総バイト数を表示します。
−U
−-unlink
−-unlink-first

ファイルを作成する前に、いったん削除します。
−v
−-verbose
−-create
でアーカイブに書くファイルや −-extract でアーカイブから取り出すファイル名をリスト表示し ます。ファイルの保護情報をファイル名とともに表示 させるには、 −-list を使います。
−V
volume-name
−-label
volume-name
指定された volume-name を持ったアーカイブを作成し ます。
−-version
tar
プログラムのバージョン番号を表示します。
−w
−-interactive
−-confirmation

すべての動作に対して、確認を求めるようになりま す。
−W
−-verify

アーカイブを書き込んだ後、ベリファイを試みます。
−-exclude
pattern
pattern
にマッチするファイルを除外します (抽出し ません。追加しません。リスト表示しません)。
−X
file
−-exclude-from
file
file
に一覧されているファイルを除外します。
−Z
−-compress
−-uncompress

アーカイブを compress(1) でフィルタリングします。
−z
−-gzip
−-gunzip

アーカイブを gzip(1) でフィルタリングします。
−-use-compress-program
program
アーカイブを program でフィルタリングします (これ は、 −d が指定されたときは ‘‘decompress’’ を意味 しなければなりません)。
−-block-compress

テープもしくはフロッピのために、圧縮プログラムの 出力をブロック化します (そうしないと、ブロック長 がおかしくなり、デバイスドライバはそのブロックを 拒絶するでしょう)。

[0-7][lmh]
テープドライブと密度を指定します。

環境

環境変数 TAR_OPTIONS に tar のデフォルトオプションを保持させることが可能 です。これらのオプションは最初に解釈されますので、明示的なコマンドライン パラメータで上書き可能です。

使用例

berternie というファイルを含む、ブロックサイズが 20 ブロックのアーカ イブを、テープドライブ /dev/sa0 に作るには、

tar cfb /dev/sa0 20 bert ernie

もしくは

tar --create --file /dev/sa0 --block-size 20 bert ernie

と入力します。 −f および −b フラグは両方とも引数を必要としていることに注 意してください。この引数は、コマンド単語に書かれているのと同じ順序でコマ ンドラインから取得されます。

/dev/sa0 はデフォルトのデバイスであり、20 はデフォルトのブロックサイズで すので、上記の例は次のように単純化できます。

tar c bert ernie

backup.tar というアーカイブから、すべての C ソース及びヘッダを抽出するに は、次のようにタイプします。

tar xf backup.tar ’*.[ch]’

シェルがカレントディレクトリ内のファイル名に展開しないよう、パターンを クォートしなければならないことに注意してください (当然、シェルはアーカイ ブ内のファイル一覧にアクセスすることはできません)。

ファイルを階層構造ごとコピーするには、このようにコマンドを使用してくださ い:

tar cf - -C srcdir . | tar xpf - -C destdir

ディスケットに、 gzip(1) を使った圧縮アーカイブを作成するには、次のような コマンドラインを使うといいでしょう。

tar --block-compress -z -c -v -f /dev/fd1a -b 36 tar/

まとめ指定フラグと −-スタイルのフラグを混在させることができないことに注意 してください。次のようにタイプしなければならないわけではなく、上記のよう な書き方で 1 文字フラグを使うことができます。

tar --block-compress --gzip --verbose --file /dev/fd1a --block-size 20 tar/

上のようにして作成したディスクの内容は、次のようにすればリスト表示できま す。

tar tvfbz /dev/fd1a 36

2 つの tar アーカイブを 1 つのアーカイブにまとめるには、

tar Af archive1.tar archive2.tar

を使います。こうすると、 archive2.tar に含まれているファイルが archive1.tar の末尾に追加されます (単純に

cat archive2.tar >> archive1.tar

とタイプしてもうまくいかないことに注意してください。なぜなら、 tar アーカ イブの末尾には end-of-file ブロックがあるからです)。

srcdir ディレクトリから 1997 年 2 月 9 日 13:00 以降に変更をされた全ての ファイルをアーカイブするためには、以下の形式を使って下さい。

tar -c -f backup.tar --newer-mtime ’Feb 9 13:15 1997’ srcdir/

他の時間指定形式としては、 ‘02/09/97 13:15’, ‘1997-02-09 13:15’, ‘13:15 9 Feb 1997’, ‘9 Feb 1997 13:15’, ‘Feb. 9, 1997 1:15pm’, ‘09-Feb’, ‘3 weeks ago’, ‘May first Sunday’ があります。正しいタイムゾーンを指定するために は、 ‘13:15 CEST’ や ‘13:15+200’ を使用して下さい。

環境変数

tar プログラムは、以下の環境変数を参照します。

       POSIXLY_CORRECT

通常、 tar はファイル指定の中に混ざったフラグを処理しま す。この環境変数を設定すると、 tar は最初のフラグ以外の 引数を見つけるとそれ以降の引数に対してフラグ処理を行なわ ないという、POSIX 仕様に合わせた動作を行なうようになりま す。

SHELL
インタラクティブモードにおいて、サブシェルの起動が要求さ れたとき、 SHELL 変数が設定されていればそれが、設定され ていなければ /bin/sh が使用されます。

TAPE
tar
のデフォルトのテープドライブを変更します (これは、さ らに −f フラグによって変更することができます)。

TAR_RSH
TAR_RSH 環境変数は、デフォルトシェルに優先して、 tar の データ転送に使用されます。

関連ファイル

       /dev/sa0

デフォルトのテープドライブ

互換性

−y は FreeBSD だけの機能です。 GNU tar メンテナは、 −j を GNU tar 1.13.18 以降における公式な bzip2(1) 圧縮オプションとして採用しました。 −I オプ ションは、Solaris の tar との互換性のためにあります。

関連項目

bzip2(1), compress(1), gzip(1), pax(1), rmt(8)

歴史

tar フォーマットは立派な歴史を持っていて、Sixth Edition UNIX に原点があり ます。この tar の実装は GNU 実装であり、 John Gilmore によって書かれたパ ブリックドメイン tar が元になっています。

作者

次の人を含む、大変多くの人々。[ソースの中の ChangeLog ファイルに記述され ている人々] John Gilmore (オリジナルのパブリックドメイン版の作者), Jay Fenlason (最初の GNU 作者), Joy Kendall, Jim Kingdon, David J. MacKenzie, Michael I Bushnell, Noah Friedman そしてバグフィックスや追加を貢献してく れた無数の人々。

このマニュアルページは NetBSD 1.0 release から、 FreeBSD グループが取り込 んだものです。

バグ

特徴的な −C オプションの動作は、伝統的な tar プログラムのそれとは異なるの で、あまり頼りにはできません。

−A コマンドで任意の数の tar アーカイブを結合できればいいのですが、それは できません。これをやろうとしても、2 つ目以降のアーカイブの end-of-archive ブロックが削除されずに残ってしまいます。

tar ファイルフォーマットは準固定幅フィールドフォーマットであり、デバイス 番号用のフィールドは 16 ビット用 (メジャー 8 ビットでマイナ 8 ビット) に デザインされており、我々の 32 ビット番号 (メジャー 8 ビットでマイナ 16+8 ビット) を吸収できません。

FreeBSD 10.0 December 23, 2000 FreeBSD 10.0

スポンサーリンク