doc/ja/man/man1/tar.1
Jun Kuriyama 043d1a8b3b Catching up to 3.1-19990417-STABLE (Fix typo and Makefile)
Reviewed by:	Japanese Online Manual Project <man-jp@jp.FreeBSD.ORG>
Submitted by:	Kazuo Horikawa <k-horik@yk.rim.or.jp>
1999-05-01 23:59:05 +00:00

501 lines
14 KiB
Groff

.\" Copyright (c) 1991, 1992, 1993 Free Software Foundation -*- nroff -*-
.\" See /usr/src/gnu/COPYING for conditions of redistribution
.\"
.\" Written by John F. Woods <jfw@jfwhome.funhouse.com>
.\" Updated by Robert Eckardt <roberte@mep.ruhr-uni-bochum.de>
.\"
.\" %Id: tar.1,v 1.18.2.1 1999/03/29 11:26:35 obrien Exp %
.\"
.\" jpman %Id: tar.1,v 1.2 1997/06/24 07:09:44 bobson Stab %
.Dd 25 August 1997
.Os FreeBSD
.Dt TAR 1
.Sh 名称
.Nm tar
.Nd
テープアーカイバ; "tar" アーカイブファイルの操作
.Sh 書式
.Nm tar
.Op [-] Ns Ar bundled-options
.Op Ar gnu-style-flags
.Op Ar tarfile
.Op Ar blocksize
.Op Ar exclude-file
.Op Ar filenames
.Op Fl C Ar directory-name
.Sh 解説
.Nm
は、歴史的な理由により
.Dq tape archiver
を省略して名付けられました。
.Nm
プログラムは、
.Ar tarfile
と呼ばれる
.Dq tar
フォーマットのアーカイブファイルを作成し、アーカイブにファイルを追加したり、
またアーカイブからファイルを抽出したりします。
tarfile は通常磁気テープを指しますが、フロッピディスケットや
通常のファイルでも構いません。
.Pp
通常、
.Nm
コマンドラインの最初の引数は、機能文字および機能変更文字からなる単語であり、
その前に ダッシュ (-) を付けても付けなくてもいいようになっています。
単語には、次の機能文字のうち丁度 1 つを含んでいる必要があります:
.Cm A ,
.Cm c ,
.Cm d ,
.Cm r ,
.Cm t ,
.Cm u ,
.Cm x ,
これらはそれぞれ、
追加 (append)、作成 (create)、差分 (difference)、置換 (replace)、
リスト表示 (table of contents)、更新 (update)、抽出 (extract)
を意味しています (下記に詳細があります)。
これらの他に、以下に詳細を述べる機能変更文字を、コマンド単語に
含めることができます。それらのいくつかは、コマンド単語内と同じ順で
コマンドライン引数を要求します (使用例の節を参照)。
機能文字と機能変更文字は、GNU 形式の引数で指定することもできます
(2 つのダッシュを最初に付け、1 つのコマンド単語ごとに機能文字か
機能変更文字を 1 つだけ指定する)。
アーカイブへの追加、アーカイブからの抽出、そしてリスト表示のために
コマンドライン指定するファイル名には、
シェルのパターンマッチ文字列を使用することができます。
.Sh 機能
以下の機能のいずれか 1 つだけを必ず指定する必要があります。
.Pp
.Bl -tag -width "--concatenate" -compact
.It Fl A
.It Fl -catenate
.It Fl "-concatenate"
指定された (tar アーカイブ形式の) ファイルを tar アーカイブの末尾
に追加します。(追加する前の古い end-of-archive ブロックは削除さ
れます。)
これは、指定されたファイルがアーカイブの中の 1 ファイルとなるので
はなく、指定したファイルの中に含まれているファイルを、最初に指定
したアーカイブに追加するという効果を持ちます。
.Em 注:
このオプションは tarfile を再書き込みする必要があるため、1/4
インチカートリッジテープでは動作しません。
.It Fl c
.It Fl -create
新しいアーカイブを作成して (もしくは古い内容を切り捨てて)、指定
されたファイルをアーカイブに書き込みます。
.It Fl d
.It Fl -diff
.It Fl -compare
アーカイブの中のファイルと、それに相当するファイルシステム内の
ファイルとの違いを調査します。
.It Fl -delete
指定されたファイルをアーカイブから削除します。(1/4 インチテープ
では動作しません。)
.It Fl r
.It Fl -append
アーカイブの末尾にファイルを追加します。(1/4 インチテープでは
動作しません。)
.It Fl t
.It Fl -list
アーカイブ内容のリスト表示をします。もし引数としてファイル名が
指定されていれば、そのファイルだけがリスト表示されます。そうでなけ
れば、アーカイブに含まれるすべてのファイルリストが表示されます。
.It Fl u
.It Fl -update
指定したファイルのうち、アーカイブ内のファイルよりもディスク上の
ファイルの変更時刻が新しいものだけを追加します。1/4 インチテープ
では動作しません。
.It Fl x
.It Fl -extract
.It Fl -get
アーカイブからファイルを抽出します。可能ならば、所有者、
変更時刻、ファイル属性はリストアされます。もし
.Ar file
引数が指定されていなければ、アーカイブ内の全ファイルが抽出されます。
もし
.Ar filename
引数がテープ上のディレクトリ名にマッチしていれば、そのディレクトリと
ディレクトリ内のファイルが抽出されます。(ディレクトリ内の
すべてのディレクトリについても同様に抽出されます。)
もしアーカイブ内に、相当する同じファイルが複数含まれていれば (上記の
.Fl -append
コマンドを参照)、最後に含まれているものが他のすべてのファイルを
上書きする形で抽出されます。
.Sh オプション
.Nm
の他のオプションは、組み合わせて使用することができます。
1 文字オプションは、コマンド単語の中で指定することができます。
引数を与えるべきオプションの場合、オプションに続けて引数を指定し
ます。1 文字オプションであれば、これに続くコマンドライン引数を
使用します (以下の
.Sx 使用例
を参照してください。)
.Pp
.Bl -tag -width "--preserve-permissions" -compact
.It Fl -help
.Nm
のすべてのコマンドオプションについて一覧と解説を表示します。
.It Fl -atime-preserve
テープに書かれている、ファイルのアクセス時刻をリストアします。
(inode の変更時刻が変更されることに注意してください!)
.It Fl b
.It Fl -block-size Ar number
読み書きするブロックサイズを
.Ar number
* 512-byte ブロック に設定します。
.It Fl B
.It Fl -read-full-blocks
短い読みだしブロックを、完全なブロックに再組み立てします。
(4.2BSD パイプの読み込み用。)
.It Fl C Ar directory
.It Fl -directory Ar directory
残りの引数を処理する前に
.Ar directory
へ移動します。
.It Fl -checkpoint
アーカイブを読み書きする間に読み書きしたバッファの数を表示します。
.It Fl f Ar [hostname:]file
.It Fl -file Ar [hostname:]file
指定された
.Ar file
(デフォルトは /dev/rsa0) を読み書きします。
もし
.Ar hostname
が指定されていれば、
.Nm
.Xr rmt 8
を使って、リモートマシン上の
.Ar file
を読み書きします。"-" はファイル名として使用されることもありますが、
これは標準入力から読み出したり、標準出力へ書き出したりするために使用されます。
.It Fl -force-local
コロンがある時でさえ、アーカイブファイルはローカルのものとします。
.It Fl F Ar file
.It Fl -info-script Ar file
.It Fl -new-volume-script Ar file
それぞれのアーカイブが終ると、スクリプトを実行します (暗黙の
.Fl M
指定が行なわれます。)
.It Fl -fast-read
ワイルドカードで指定されていないすべての抽出ターゲットが
アーカイブ内に見つかったら、その時点で終了します。
.It Fl G
.It Fl -incremental
古い GNU-format インクリメンタルバックアップファイルを作成/リスト/
抽出します。
.It Fl g Ar file
.It Fl -listed-incremental Ar file
新しい GNU-format インクリメンタルバックアップファイルを作成/リスト/
抽出します。
.It Fl h
.It Fl -dereference
シンボリックリンクをシンボリックのまま書き込みません。シンボリックリンクが
指しているデータを書き込みます。
.It Fl i
.It Fl -ignore-zeros
アーカイブの中のゼロブロック (通常、End-Of-File を意味する) を無視します。
.It Fl -ignore-failed-read
ファイルが読めなくても、非 0 のステータスで exit しません。
.It Fl k
.It Fl -keep-old-files
ディスク上に既にあるファイルを保持します。つまり、アーカイブから
抽出するファイルは、ディスク上のファイルへ上書きしません。
.It Fl K Ar file
.It Fl -starting-file Ar file
アーカイブの中の
.Ar file
から (抽出、リストなどを) 始めます。
.It Fl l
.It Fl -one-file-system
あるファイルシステム内にあるファイルだけでアーカイブを作成します。
(他ファイルシステムへのマウントポイントを跨ぎません。)
.It Fl L Ar number
.It Fl -tape-length Ar number
.Ar number
* 1024 バイト書き込んだ後でテープの交換を要求します。
.It Fl m
.It Fl -modification-time
ファイルの変更時刻を抽出しません。
.It Fl M
.It Fl -multi-volume
マルチボリュームアーカイブを作成/リスト/抽出します。
.It Fl n
.It Fl -norecurse
作成時に再帰的にサブディレクトリを走査しません。
.It Fl -volno-file Ar file
ボリューム番号付きのファイル名です。
.It Fl N Ar date
.It Fl -after-date Ar date
.It Fl -newer Ar date
作成時間が
.Ar date
より新しいファイルだけを抽出します。
.It Fl -newer-mtime Ar date
変更時間が
.Ar date
より新しいファイルだけを抽出します。
.It Fl o
.It Fl -old-archive
.It Fl -portability
POSIX フォーマットではなく、V7 フォーマットのアーカイブを作成します。
.It Fl O
.It Fl -to-stdout
ファイルを標準出力に抽出します。
.It Fl p
.It Fl -same-permissions
.It Fl -preserve-permissions
保護情報を完全に抽出します。
.It Fl -preserve
.Fl p s
の指定と同じ効果を持ちます。
.It Fl P
.It Fl -absolute-paths
ファイル名から先頭の `/' をとりません。
.It Fl R
.It Fl -record-number
メッセージ中にアーカイブ内のレコード番号を埋め込み表示します。
.It Fl -remove-files
アーカイブに追加したファイルを、追加後に削除します。
.It Fl s
.It Fl -same-order
.It Fl -preserve-order
アーカイブ内から抽出するファイルを、指定された順のままにします。
.It Fl -show-omitted-dirs
アーカイブ作成中に除外されたディレクトリを表示します。
.It Fl S
.It Fl -sparse
「少ない」ファイルを効率的に扱うようにします。
.It Fl T Ar file
.It Fl -files-from Ar file
.Ar file
から抽出もしくは作成するファイル名を得ます。(1 行 1 ファイル名。)
.It Fl -null
null で終わっている名前を考慮し、
.Fl T
の振舞を変更します。
これは
.Fl C
指定を無効にします。
.It Fl -totals
.Fl -create
によって書かれた総バイト数を表示します。
.It Fl v
.It Fl -verbose
.Fl -create
でアーカイブに書くファイルや
.Fl -extract
でアーカイブから
取り出すファイル名をリスト表示します。
ファイルの保護情報をファイル名とともに表示させるには、
.Fl -list
を使います。
.It Fl V Ar volume-name
.It Fl -label Ar volume-name
指定された
.Ar volume-name
を持ったアーカイブを作成します。
.It Fl -version
.Nm
プログラムのバージョン番号を表示します。
.It Fl w
.It Fl -interactive
.It Fl -confirmation
すべての動作に対して、確認を求めるようになります。
.It Fl W
.It Fl -verify
アーカイブを書き込んだ後、ベリファイを試みます。
.It Fl -exclude Ar pattern
.Ar pattern
にマッチするファイルを除外します。
(抽出しません。追加しません。リスト表示しません。)
.It Fl X Ar file
.It Fl -exclude-from Ar file
.Ar file
に一覧されているファイルを除外します。
.It Fl y
.It Fl -bzip2
.It Fl -bunzip2
アーカイブを
.Xr bzip2 1
でフィルタリングします。
.It Fl Z
.It Fl -compress
.It Fl -uncompress
アーカイブを
.Xr compress 1
でフィルタリングします。
.It Fl z
.It Fl -gzip
.It Fl -gunzip
アーカイブを
.Xr gzip 1
でフィルタリングします。
.It Fl -use-compress-program Ar program
アーカイブを
.Ar program
でフィルタリングします。
(これは、
.Fl d
が指定されたときは ``decompress'' を意味しなければなりません。)
.It Fl -block-compress
テープもしくはフロッピのために、圧縮プログラムの出力をブロック
化します。(そうしないと、ブロック長がおかしくなり、デバイスドライバは
そのブロックを拒絶するでしょう。)
.It Fl [0-7][lmh]
テープドライブと密度を指定します。
.It Fl -unlink
ファイルを作成する前に、いったん削除します。
.El
.Sh 使用例
"bert" と "ernie" というファイルを含む、
ブロックサイズが 20 ブロックのアーカイブを、
テープドライブ /dev/rsa0 に作るには、
.Pp
.Dl tar cfb /dev/rsa0 20 bert ernie
.Pp
もしくは
.Pp
.Dl tar\ --create\ --file\ /dev/rsa0\ --block-size\ 20\ bert\ ernie
.Pp
と入力します。
.Fl f
および
.Fl b
フラグは両方とも引数を必要としていることに注意してください。
この引数は、コマンド単語に書かれているのと同じ順序でコマンドラインから
取得されます。
.Pp
/dev/rsa0 はデフォルトのデバイスであり、20 はデフォルトのブロック
サイズですので、上記の例は次のように単純化できます。
.Pp
.Dl tar c bert ernie
.Pp
"backup.tar" というアーカイブから、すべての C ソース及びヘッダを
抽出するには、次のようにタイプします。
.Pp
.Dl tar xf backup.tar '*.[ch]'
.Pp
シェルがカレントディレクトリ内のファイル名に展開しないよう、パターンを
クォートしなければならないことに注意してください。(当然、
シェルはアーカイブ内のファイル一覧にアクセスすることはできません。)
.Pp
ファイルを階層構造ごとコピーするには、このようにコマンドを使用してください:
.Bd -literal
tar cf - -C srcdir . | tar xpf - -C destdir
.Ed
.Pp
ディスケットに、gzip を使った圧縮アーカイブを作成するには、次の
ようなコマンドラインを使うといいでしょう。
.Pp
.Dl tar --block-compress -z -c -v -f /dev/rfd1a -b 36 tar/
.Pp
まとめ指定フラグと -- スタイルのフラグを混在させることができない
ことに注意してください。次のようにタイプしなければならないわけで
はなく、上記のような書き方で 1 文字フラグを使うことができます。
.Pp
.Dl tar --block-compress --gzip --verbose --file /dev/rfd1a --block-size 20 tar/
.Pp
上のようにして作成したディスクの内容は、次のようにすればリスト
表示できます。
.Pp
.Dl tar tvfbz /dev/rfd1a 36
.Pp
2 つの tar アーカイブを 1 つのアーカイブにまとめるには、
.Pp
.Dl tar Af archive1.tar archive2.tar
.Pp
を使います。こうすると、archive2.tar に含まれているファイルが
archive1.tar の末尾に追加されます。(単純に
.Pp
.Dl cat archive2.tar >> archive1.tar
.Pp
とタイプしてもうまくいかないことに注意してください。なぜなら、
tar アーカイブの末尾には end-of-file ブロックがあるからです。)
.Pp
srcdir ディレクトリから 1997 年 2 月 9 日 13:00 以降に変更をされた
全てのファイルをアーカイブするためには、以下の形式を使って下さい。
.Dl tar\ -c\ -f\ backup.tar\ --newer-mtime\ 'Feb\ 9\ 13:15\ 1997'\ srcdir/
.Pp
他の時間指定形式としては、'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' を使用して下さい。
.Sh 環境変数
.Nm
プログラムは、以下の環境変数を参照します。
.Bl -tag -width "POSIXLY_CORRECT"
.It POSIXLY_CORRECT
通常、
.Nm
はファイル指定の中に混ざったフラグを処理します。
この環境変数を設定すると、
.Nm
は最初のフラグ以外の引数を見つける
とそれ以降の引数に対してフラグ処理を行なわないという、POSIX 仕様
に合わせた動作を行なうようになります。
.It SHELL
インタラクティブモードにおいて、サブシェルの起動が要求されたとき、
SHELL 変数が設定されていればそれが、設定されていなければ
"/bin/sh" が使用されます。
.It TAPE
tar のデフォルトのテープドライブを変更します。(これは、さらに
.Fl f
フラグによって変更することができます。)
.El
.Sh 関連ファイル
.Bl -tag -width "/dev/rsa0"
.It Pa /dev/rsa0
デフォルトのテープドライブ
.El
.\" This next request is for sections 1, 6, 7 & 8 only
.\" (command return values (to shell) and fprintf/stderr type diagnostics)
.\" .Sh 診断
.Sh 関連項目
.Xr bzip2 1 ,
.Xr compress 1 ,
.Xr gzip 1 ,
.Xr pax 1 ,
.Xr ft 8 ,
.Xr rmt 8
.\" .Sh 規格
.Sh 歴史
.Nm
フォーマットは立派な歴史を持っていて、Sixth Edition UNIX に
原点があります。
この
.Nm
の実装は GNU 実装であり、John Gilmore によって書かれた
パブリックドメイン tar が元になっています。
.Sh 作者
次の人を含む、大変多くの人々。[ソースの中の ChangeLog ファイルに記
述されている人々]
.An John Gilmore
(オリジナルのパブリックドメイン版の作者),
.An Jay Fenlason
(最初の GNU 作者),
.An Joy Kendall ,
.An Jim Kingdon ,
.An David J. MacKenzie ,
.An Michael I Bushnell ,
.An Noah Friedman
そして
バグフィックスや追加を貢献してくれた無数の人々。
このマニュアルページは NetBSD 1.0 release から、
.Bx Free
グループが
取り込んだものです。
.Sh バグ
特徴的な
.Fl C
オプションの動作は、伝統的な tar プログラムのそれとは異なるので、
あまり頼りにはできません。
.Pp
.Fl A
コマンドで任意の数の tar アーカイブを結合できればいいのですが、
それはできません。これをやろうとしても、 2 つ目以降のアーカイブの
end-of-archive ブロックが削除されずに残ってしまいます。