日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、全翻訳済み)
6.4-STABLE-K, 7.2-STABLE-K, 8.0-STABLE-K は現在、 作成中で日々更新されています。 最新の snapshots を元に作成しています。
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 が指定されていれば、 tar
は rmt(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 のデフォルトオプションを保持させることが可能
です。これらのオプションは最初に解釈されますので、明示的なコマンドライン
パラメータで上書き可能です。
使用例
bert と ernie というファイルを含む、ブロックサイズが 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 4.9 December 23, 2000 FreeBSD 4.9