Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all 

名前
tar - アーカイブユーティリティ
書式
伝統的な使用法 tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...] UNIX スタイルの使用法 tar -A [OPTIONS] ARCHIVE ARCHIVE tar -c [-f ARCHIVE] [OPTIONS] [FILE...] tar -d [-f ARCHIVE] [OPTIONS] [FILE...] tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...] tar -r [-f ARCHIVE] [OPTIONS] [FILE...] tar -u [-f ARCHIVE] [OPTIONS] [FILE...] tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...] GNU スタイルの使用法 tar {--catenate|--concatenate} [OPTIONS] ARCHIVE ARCHIVE tar --create [--file ARCHIVE] [OPTIONS] [FILE...] tar {--diff|--compare} [--file ARCHIVE] [OPTIONS] [FILE...] tar --delete [--file ARCHIVE] [OPTIONS] [MEMBER...] tar --append [-f ARCHIVE] [OPTIONS] [FILE...] tar --list [-f ARCHIVE] [OPTIONS] [MEMBER...] tar --test-label [--file ARCHIVE] [OPTIONS] [LABEL...] tar --update [--file ARCHIVE] [OPTIONS] [FILE...] tar --update [-f ARCHIVE] [OPTIONS] [FILE...] tar {--extract|--get} [-f ARCHIVE] [OPTIONS] [MEMBER...]
注記
この マニュアルページは GNU tar の簡単な説明です。 使用例や推奨される使い方を含む詳しい議論について は、texinfo 形式の GNU Tar Manual を見てください。info リーダーと tar 関連文書が御使用のシステムに正しく インストールされているなら、コマンド info tar で詳細なマニュアルが読めるはずです。 詳細なマニュアルは、 emacs(1) の info モードでも閲覧することができます。 また、下記のサイトに行け ば、様々な形式にした詳細マニュアルのオンライン版を見つけることができます。 http://www.gnu.org/software/tar/manual この マニュアルページと GNU Tar Manual の内容に食い違いがある場合は、後者の方が信頼できる情報源です。
説明
GNU tar は、アーカイブプログラムです。 アーカイブプログラムとは、複数のファイルを 1 個のファイル (アーカ イブ) に格納したり、そうしたアーカイブを操作したりするためのプログラムです。 アーカイブは、通常ファイルで あってもよく、デバイスでもかまいません (後者の一例がテープドライブであり、このプログラムの名前は、そこか ら来ています。 すなわち、tape archiver ということです)。 そうしたファイルやデバイスは、ローカルマシンに あってもよく、リモートマシンにあってもかまいません。 オプション形式 GNU tar のオプションは、3 つの異なる形式で指定できます。伝統的なスタイル では、最初の引数は、オプション文 字の集まりであり、それに続くすべての引数は、 そうしたオプションが引数を要求する場合に、その引数になりま す。 なお、そうした引数は、オプション文字と同じ順番で読み込まれます。 すべてのオプションの処理が終わった 後で、コマンドラインに残っている単語があれば、 それは、オプションとは関係のない引数として扱われます。 す なわち、ファイルやアーカイブメンバーの名前です。 たとえば、c オプションは、アーカイブの作成を指示し、v オプションは、 やっていることを表示するように要求 し、f オプションは、 操作対象のアーカイブ名を引数に取ります。 伝統的なスタイルで書かれた次のコマンド は、ディレクトリ /etc のすべてのファイルをアーカイブファイル etc.tar に格納し、どんなファイルをアーカイブ に入れたか、詳しいリストを表示するように tar に指示しています。 tar cfv etc.tar /etc UNIX スタイル、すなわち短いオプション形式では、 他のコマンドラインユーティリティと同様に、各オプション文 字には、 1 個のダッシュがその前に付きます。オプションが引数を取る場合は、引数はその後に続きます。 引数 は、コマンドライン上の独立した単語としてオプションとの間にスペースを置いて指定してもよく、 スペースを挟ま ずオプションに直接続けてもかまいません。ただし、オプションの引数が任意である (訳注: あることも、ないこと もある) 場合は、その引数は -g/tmp/snar.db のように、オプション文字の後にスペースなしで続けなければなりま せん。 引数をとらないオプションは、1 個のダッシュの後に何個でもまとめて指定できます。 たとえば、-vkp のようにで す。引数を (必須であれ任意であれ) 取るオプションがあったら、ひとつにまとめたオプションの最後に置きます。 -vkpf a.tar がその一例です。 上で例示したコマンドは、 短いオプション形式で書けば、以下のようになります。 tar -cvf etc.tar /etc または tar -c -v -f etc.tar /etc GNU スタイル、すなわち長いオプション形式では、 各オプションは、2 個のダッシュに続く意味を持った名前であ り、 小文字とダッシュから構成されています。使用に当たって、長いオプションは、 曖昧さを生じないかぎり、最 初の数文字に短縮できます。長いオプションに対する引数は、 そのオプションの直後にコマンドライン上の独立した 単語として (訳注: すなわち、間にスペースを置いて) 指定するか、あるいは、オプションとの間を等号 (=) で区切 り、等号の前後にはスペースを入れずに指定します。 指定するかしないかが任意の引数では、必ず後者の書式を使わ なければなりません。 上記のコマンド例をこの形式で書くには、次のようないくつかの方法があります。 tar --create --file etc.tar --verbose /etc または (オプションをいくつか短縮して)、 tar --cre --file=etc.tar --verb /etc オプションは、3 種の形式すべてを混ぜて使うことができますが、 伝統的なオプションを混ぜて使うのはお勧めでき ません。 操作モード 以下に列挙したオプションは、GNU tar にかくかくしかじかの操作をせよと指定するものです。 指定するのは、この 内のただ 1 つでなければなりません。 オプションの引数ではない引数がどんな意味になるかは、要求した操作モー ド次第です。 -A, --catenate, --concatenate アーカイブを別のアーカイブの末尾に追加します。 引数は追加するアーカイブの名前と見なされます。すべ ての追加するアーカイブは、 追加される側のアーカイブ (訳注: これは -f オプションの引数で指定します) と同じ形式でなければなりません。そうでないと、作成されたアーカイブが、GNU 以外の tar の実装で使え なくなる可能性があります。 なお、注意すべき点として、2 個以上のアーカイブを引数として指定した場合 に、1 番目のアーカイブ以外のアーカイブのメンバーが、作成されたアーカイブでアクセスできるのは、 -i (--ignore-zeros) オプションを使用した場合だけです。 圧縮したアーカイブの結合はできません。 -c, --create 新しいアーカイブを作成します。 引数はアーカイブに入れるファイルの名前です (訳注: 作成するアーカイ ブファイルの名前は、-f オプションの引数で指定します)。 --no-recursion オプションが指定されないかぎ り、ディレクトリは再帰的にアーカイブされます。 -d, --diff, --compare アーカイブとファイルシステムの間に相違があるかどうかを調べます。 引数は任意だが、指定するなら、比 較したいアーカイブのメンバーです。 指定しない場合は、カレントワーキングディレクトリを指定したもの と見なされます。 (訳注: info マニュアルの説明は少し違い、「メンバーを 1 つも指定しない場合、 tar は全アーカイブを比較する」となっています。) --delete アーカイブから削除します。引数はアーカイブから削除するメンバーの名前です。少なくとも 1 つは引数を 指定しなければなりません。 このオプションは圧縮したアーカイブには使えません。 これと等価な短いオプションはありません。 -r, --append アーカイブの最後にファイルを追加します。引数の意味は、-c (--create) と同じです。 -t, --list アーカイブの内容一覧を表示します。引数は任意です。 引数が指定された場合は、表示すべきメンバーの名 前となります。 --test-label アーカイブのボリュームラベルをテストして終了します。 引数を指定せずに使用すると、ボリュームラベル を (もしあれば) 表示し、ステータス 0 で終了します。1 つ以上のコマンドライン引数を指定すると、tar はボリュームラベルを各引数と比較します。引数にマッチするラベルがあった場合は、コード 0 で終了 し、なかった場合は、 コード 1 で終了します。その際、-v (--verbose) オプションが一緒に指定されない かぎり、出力には何も表示されません。 これと等価な短いオプションはありません。 -u, --update アーカイブ内の同名のコピーより新しいファイルだけを追加します。 引数の意味は、-c や -r オプションと 同じです。 気を付けてほしいのですが、新しいファイルが、古いアーカイブコピーに置き換わるわけではあ りません。 そうではなくて、アーカイブの末尾に追加されるのです。 従って、作成されたアーカイブには、 同じファイルの様々なバージョンに当たる、同じ名前の複数のメンバーが含まれることがあります。 -x, --extract, --get アーカイブからファイルを抽出します。引数は任意です。 引数が指定された場合、抽出するアーカイブメン バーの名前となります。 --show-defaults tar のいくつかのオプションについて組み込みのデフォルトを表示して、終了します。 引数は指定できませ ん。 -?, --help 簡単なオプションのサマリーを表示して、終了します。 引数は指定できません。 --usage 指定可能なオプションのリストを表示して、終了します。 引数は指定できません。 --version プログラムのバージョンと著作権情報を表示して終了します。
オプション
操作の調節 --check-device インクリメンタルアーカイブを作成する際に、デバイス番号をチェックします (デフォルト)。 -g, --listed-incremental=FILE 新 GNU 形式のインクリメンタルバックアップを取り扱います。 FILE はスナップショットファイルの名前で す (訳注: このオプションの引数 FILE の指定は必須です)。tar はそこに補助情報を記録しておき、その情 報を使って、前回のインクリメンタルダンプの後で、 どのファイルが変更され、従って、再度ダンプしなけ ればならないかを判断します。 アーカイブの作成時に FILE が存在しない場合は、FILE が作られ、すべての ファイルが作成されるアーカイブに格納されることになります (これが level 0 のダンプである)。N が 0 ではない level N のインクリメンタルアーカイブを作成するには、level N-1 のアーカイブを作成したとき に出来たスナップショットファイルのコピーを作って、それを FILE として使用します。 アーカイブの内容表示やメンバーの抽出の際には、FILE の中身が実際に調べられるわけではありません。tar の文法上 --listed-incremental は引数を取ることになっているので、FILE の指定が必要なだけなので す。それ故、FILE として /dev/null を使うのは、常套手段です。 --hole-detection=METHOD スパースファイル (sparse file) の穴 (hole) の検出に METHOD を使います。このオプションは、--sparse を暗黙裡に設定します。METHOD に指定できる値は、seek と raw です。デフォルトは seek であり、使用で きない場合は raw を使います。 -G, --incremental 旧 GNU 形式のインクリメンタルバックアップを取り扱います。 --ignore-failed-read 読み込み不能なファイルがあっても、ゼロ以外の返り値で終了しません。 --level=NUMBER 作成するリスト化インクリメンタルアーカイブ (訳注: すなわち、新 GNU 形式のインクリメンタルアーカイ ブ) のダンプレベルを設定します。 現在のところ、--level=0 のみが意味を持ちます。 これを指定する と、tar はダンプする前にスナップショットファイルをサイズ 0 に短縮し、 強制的にレベル 0 のダンプに します。 -n, --seek アーカイブがシーク (seek) 可能であると見なします。通常、tar は、 アーカイブがシーク可能であるか否 かを自動的に判断します。 このオプションは、そうした判断がうまく行かない場合に使うためのものです。 このオプションは、アーカイブを読み込むためにオープンしている場合にのみ効果があります (たとえば、 --list または --extract オプションが指定されている場合)。 --no-check-device インクリメンタルアーカイブを作成する際に、デバイス番号をチェックしません。 --no-seek アーカイブがシーク可能でないと見なします。 --occurrence[=N] アーカイブ中の各ファイルについて、N 番目に現れるものだけを処理の対象にします。 このオプション は、サブコマンド --delete, --diff, --extract, --list の 1 つとともに使用し、 しかも、ファイルのリ ストを、コマンドライン上、または -T オプションで指定している場合にのみ、有効です。オプション引き数 N の指定は任意ですが、デフォルトでは 1 になっています。(訳注: -r や -u オプションを使った場 合、アーカイブ中に同名のメンバーが複数存在することがります。 そうした場合に、何番目のメンバーを抽 出などの対象にするかを指名するのです。) --restrict 有害かもしれないいくつかのオプションを無効化します。 --sparse-version=MAJOR[.MINOR] スパースファイルで使用するスパースフォーマットのバージョンを指定します。 このオプションは --sparse を暗黙裡に設定します。 引数に指定できる値は、 0.0, 0.1, 1.0 のいずれかです。 スパースフォーマット についての詳しい議論については、 GNU Tar Manual, appendix D, "Sparse Formats" を見てください。info リーダーを使用する場合は、コマンド info tar 'Sparse Formats' で読むことができます。 -S, --sparse スパースファイルを効率的に取り扱います。ファイルシステム上のファイルの中には、 実際の書き込みが一 度も行われていないセグメントを含むものがあります (そうしたものが DBM のようなシステムで作られた データベースファイルだったりするのは、よくあることです)。 このオプションを指定すると、tar は、ファ イルをアーカイブに入れる前に、 それがスパースファイルかどうかを判断しようとします。 そして、もしそ うなら、ファイル中の空っぽの部分をダンプしないことによって、 生成するアーカイブのサイズを小さくし ます。 上書きの制御 以下のオプションは、アーカイブからファイルを抽出することによって、 ディスク上にある同名ファイルの上書きが 生じる場合の tar の挙動を制御します。 -k, --keep-old-files 抽出時に、既存のファイルを置き換えません。 --keep-newer-files 既存のファイルがアーカイブコピーより新しい場合、それを置き換えません。 --keep-directory-symlink 抽出する際に、ディレクトリを指す同名のシンボリックリンクがすでに存在している場合は、 それをアーカ イブ中の実ディレクトリで置き換えません。(訳注: その場合は、そのシンボリックの参照先にアーカイブ中 のディレクトリの中身を展開します。 このオプションを指定しないデフォルトでは、まずシンボリックリン クを消去し、 それからディレクトリの抽出を行うことになります。) --no-overwrite-dir 既存のディレクトリのメタデータを変更しません。 --one-top-level[=DIR] すべてのファイルを DIR に抽出します。引数なしで使用すると、 アーカイブのベースネームにちなんだ名前 のサブディレクトリに抽出することになります (詳しく言うと、アーカイブのベースネームから --auto-compress で認識される標準的な圧縮ファイルの拡張子を取り去ったもの)。 --overwrite 抽出時に、既存ファイルを上書きします。 --overwrite-dir 抽出時に、既存ディレクトリのメタデータを上書きします (デフォルト)。 --recursive-unlink ディレクトリを抽出する前に、同名のディレクトリにあるすべてのファイルを再帰的に削除します。 --remove-files ファイルをアーカイブに追加した後で、ディスクからファイルを削除します。 --skip-old-files 抽出時に、既存のファイルを上書きせず、何のメッセージも出さずにスキップします (訳注: な お、--keep-old-files と違い、こちらは返り値がエラーになりません)。 -U, --unlink-first 抽出する際に、上書きするファイルをまず削除します。 -W, --verify アーカイブを書き込んだ後で照合します。 出力ストリームに関する選択 --ignore-command-error サブプロセスの終了コードを無視します。 --no-ignore-command-error 子プロセスの 0 以外の終了コードをエラーとして扱います (デフォルト)。 -O, --to-stdout ファイルを標準出力に抽出します。 --to-command=COMMAND 抽出したファイルをパイプで COMMAND に渡します。 このオプションの引数は、外部プログラムのパス名であ り、 コマンドライン引数を付けて指定することもできます。外部プログラムが起動されると、 抽出された ファイルの内容が、そのプログラムの標準入力に渡されます。また、 追加的なデータが、以下の環境変数を 通して外部プログラムに渡されることになります。 TAR_FILETYPE ファイルのタイプ。1 文字からなり、以下の意味があります。 f 通常ファイル d ディレクトリ l シンボリックリンク h ハードリンク b ブロックデバイス c キャラクタデバイス 現在のところサポートされているのは、通常ファイルだけです。 TAR_MODE ファイルの許可属性。8 進数。 TAR_FILENAME ファイル名。 TAR_REALNAME アーカイブに格納されているファイル名。 TAR_UNAME ファイルの所有者名。 TAR_GNAME ファイルの所有グループ名。 TAR_ATIME 最終アクセス日時。これは、the Epoch からの秒数を表す 10 進数です。 アーカイブの日時がナノ秒 の精度の場合、タイムスタンプの小数点の後ろにナノ秒の部分が付きます。 TAR_MTIME 最終更新日時。 TAR_CTIME 最終ステータス変更日時。 TAR_SIZE ファイルのサイズ。 TAR_UID ファイルの所有者の UID。 TAR_GID ファイルの所有グループの GID。 さらに、以下の環境変数に tar の操作モードや処理対象のアーカイブについての情報が含まれています。 TAR_VERSION GNU tar のバージョン番号。 TAR_ARCHIVE tar が処理中のアーカイブの名前。 TAR_BLOCKING_FACTOR 現在のブロッキング係数。すなわち、1 レコードを構成する 512 バイトのブロック数。 TAR_VOLUME tar が処理中のボリューム番号 (複数ボリュームのアーカイブを読み込んでいる場合に設定されま す)。 TAR_FORMAT 処理しているアーカイブのフォーマット。gnu, oldgnu, posix, ustar, v7 の内の 1 つ。 TAR_SUBCOMMAND tar が実行中の操作を表す短いオプション (前に 1 個のダッシュが付いたもの)。 ファイル属性の操作 --atime-preserve[=METHOD] ダンプの対象にした元ファイルのアクセス日時を変更しません。 その方法には、ファイルを読み込んだ後で アクセス日時を元に戻すやり方 (METHOD=replace、デフォルト) と、最初からアクセス日時を変更しないやり 方 (METHOD=system) の二つがあります。 --delay-directory-restore 抽出したディレクトリの更新日時や許可属性の決定を、抽出の最後まで遅らせます。 メンバーの順番が通常 とは違っているアーカイブから抽出する際には、このオプションを使用するとよいでしょう。 (訳注: info tar の "Directory Modification Times and Permissions" を参照。) --group=NAME[:GID] アーカイブに入れるファイルの所有グループを NAME にします。 GID まで指定しない場合、NAME はグループ 名でも、GID 番号でもかまいません。 その場合、指定しない方 (GID、またはグループ名) は、使用中のホ ストのグループデータベースから推測されることになります。 --group-map=FILE と一緒に使われたときは、 所有グループが FILE のリストに載っていないファイルに対し てのみ効果があります。 --group-map=FILE グループ変換マップを FILE から読み込みます。空行は無視します。 コメントは # で始まり、行末まで続 く。FILE の空行以外の各行では、1 つのグループ変換を定義します。各行は、任意の数のホワイトスペース (訳注: 空白やタブ) で区切られた 2 つのフィールドから構成されていなければなりません。 すなわち、次 のような形です: OLDGRP NEWGRP[:NEWGID] OLDGRP は有効なグループ名か、+ を前に付けた GID です。 NEWGID を指定しない場合は、NEWGRP の方 も、やはり有効なグループ名か、 +GID でなければなりません。NEWGID まで指定した場合は、NEWGRP と NEWGID のどちらも、システムのグループデータベースに載っている必要はありません。 つまるところ、所有グループ OLDGRP の各入力ファイルが、所有グループを NEWGRP、GID を NEWGID として アーカイブに格納されることになります。 --mode=CHANGES アーカイブに入れるファイルの許可属性を、シンボルによる指定で CHANGES にします (訳注: 実際には 8 進 数による指定も可能)。 --mtime=DATE-OR-FILE アーカイブに入れるファイルの mtime を設定します。DATE-OR-FILE は、 ほぼ任意のフォーマットの日付/時 刻、または既存ファイルの名前です。 後者の場合、そのファイルの mtime が使われます。 -m, --touch ファイルの更新日時 (mtime) を抽出しません。 --no-delay-directory-restore 前に指定した --delay-directory-restore オプションの効果を取り消します。 --no-same-owner 実行ユーザ自身の資格でファイルを抽出します (一般ユーザのデフォルト)。 --no-same-permissions アーカイブから許可属性を抽出する際、実行ユーザの umask を適用します (一般ユーザのデフォルト)。 --numeric-owner ユーザ/グループ名に常に番号を使います。 --owner=NAME[:UID] アーカイブに入れるファイルの所有者を NAME にします。 UID まで指定しない場合、NAME はユーザ名で も、UID 番号でもかまいません。 その場合、指定しない方 (UID、またはユーザ名) は、使用中のホストの ユーザデータベースから推測されることになります。 --owner-map=FILE と一緒に使われたときは、 所有者が FILE のリストに載っていないファイルに対してのみ 効果があります。 --owner-map=FILE 所有者変換マップを FILE から読み込みます。空行は無視します。 コメントは # で始まり、行末まで続きま す。FILE の空行以外の各行では、1 つの UID 変換を定義する。各行は、任意の数のホワイトスペース (訳 注: 空白やタブ) で区切られた 2 つのフィールドから構成されていなければなりません。 すなわち、次のよ うな形です: OLDUSR NEWUSR[:NEWUID] OLDUSR は有効なユーザ名か、+ を前に付けた UID です。 NEWUID を指定しない場合は、NEWUSR の方も、や はり有効なユーザ名か、 +UID でなければなりません。NEWUID まで指定した場合は、NEWUSR と NEWUID のど ちらも、システムのユーザデータベースに載っている必要はありません。 つまるところ、所有者 OLDUSR の各入力ファイルが、所有者名を NEWUSR、UID を NEWUID としてアーカイブ に格納されることになります。 -p, --preserve-permissions, --same-permissions ファイルの許可属性に関する情報を抽出します (スーパーユーザのデフォルト)。 --same-owner アーカイブ中のものと同じ所有者属性を付けて、ファイルを抽出しようと試みます (スーパーユーザのデフォ ルト)。 -s, --preserve-order, --same-order 引数である抽出すべきファイルの名前が、アーカイブ中と同じ順番でソートされていると tar に知らせま す。(訳注: info tar の "Same Order" と "Option Summary" に詳しい説明があります。それがわかりやす い。) --sort=ORDER アーカイブを作成する際に、ディレクトリエントリを ORDER に基づいてソートします。 ORDER は none, name, inode のいずれかです。 デフォルトは --sort=none であり、 オペレーティングシステムが返すのと同じ順番でメンバーをアーカイブ します。 --sort=name は、作成されるアーカイブのメンバーの並び順を一定で、再現可能なものにします。 --sort=inode を使うと、アーカイブを作成する際のディスクシークの回数を減らし、 そうすることで、実行 時間をかなりスピードアップすることができます。 このソート順は、下層で動いているシステムが必要な情 報を提供する場合にのみ使用できます。 拡張ファイル属性 --acls POSIX ACL のサポートを有効にします。 --no-acls POSIX ACL のサポートを無効にします。 --selinux SELinux コンテキストのサポートを有効にします。 --no-selinux SELinux コンテキストのサポートを無効にします。 --xattrs 拡張属性のサポートを有効にします。 --no-xattrs 拡張属性のサポートを無効にします。 --xattrs-exclude=PATTERN xattr のキー (訳注: 拡張属性の名前) について、格納や抽出から除外するパターンを指定します。PATTERN は POSIX の正規表現です。たとえば、--xattrs-exclude='^user.' と指定すれば、名前空間 user の属性を 除外することになります。 --xattrs-include=PATTERN xattr のキーについて、格納や抽出時にインクルードするパターンを指定します。 PATTERN は POSIX の正規 表現です。 デバイスの選択と交換 -f, --file=ARCHIVE アーカイブファイルまたはアーカイブデバイスとして ARCHIVE を使用します。 このオプションを指定しない 場合、tar は、まず環境変数 `TAPE' を調べ、 設定されていれば、その値をアーカイブ名として使用しま す。 設定されていない場合は、コンパイル時に埋め込まれたデフォルトを使います。 デフォルトの値は --show-defaults オプションを使って調べることができます。また、tar --help の出力の末尾を見てもわか ります。 アーカイブ名にコロンが含まれている場合、それは、リモートマシンのファイルかデバイスです。 コロンの 前の部分はマシン名または IP アドレスと見なされ、コロンの後の部分はファイルまたはデバイスのパス名と 見なされます。 例は以下のとおりです: --file=remotehost:/dev/sr0 そうしたければ、ホスト名の前にユーザ名を付けることもできます。その場合は、両者の間に @ 記号を置き ます。 デフォルトでは、リモートホストは rsh(1) コマンドを使ってアクセスされます。 最近では、代わりに ssh(1) を使うのが一般的です。 そうしたい場合は、以下のコマンドラインオプションを指定します: --rsh-command=/usr/bin/ssh リモートマシンには rmt(8) コマンドがインストールされていなければなりません。 そのパス名が tar の デフォルトと一致しない場合は、 --rmt-command オプションを使って正しいパス名を tar に知らせることが できます。 --force-local アーカイブファイル名にコロンが含まれていてもローカルファイルとして扱います。 -F, --info-script=COMMAND, --new-volume-script=COMMAND 各テープの終わりに COMMAND を実行します (-M が暗黙裡に設定されます)。 コマンドには引数を含めること ができます。コマンドは起動されるとき、tar の環境変数に加えて、以下の環境変数を継承します。 TAR_VERSION GNU tar のバージョン番号。 TAR_ARCHIVE tar が処理中のアーカイブの名前。 TAR_BLOCKING_FACTOR 現在のブロッキング係数。すなわち、1 レコードを構成する 512 バイトのブロック数。 TAR_VOLUME tar が処理中のボリューム番号 (複数ボリュームのアーカイブを読み込んでいる場合に設定されま す)。 TAR_FORMAT 処理しているアーカイブのフォーマット。gnu, oldgnu, posix, ustar, v7 の内の 1 つ。 TAR_SUBCOMMAND tar が実行中の操作を表す短いオプション (前に 1 個のダッシュが付いたもの)。 TAR_FD 新しいボリューム名を tar に伝えるために使うことができるファイルディスクリプタ。 指定された info script が失敗した場合、tar は終了します。成功した場合は、次のボリュームの書き込み を始めます。 -L, --tape-length=N Nx1024 バイトを書き込んだ後、テープを入れ替えます。 N にはサイズを表す接尾辞 (下記の「サイズ接尾 辞」を参照) を付けることができます。そうした接尾辞は 1024 の代わりに使う乗数を指定しています。 このオプションは -M を暗黙裡に設定します。 -M, --multi-volume マルチボリュームアーカイブの作成/内容表示/抽出を行います。 --rmt-command=COMMAND リモートアーカイブにアクセスする際に、rmt の代わりに COMMAND を使います。 上記の -f オプションの説 明を参照してください。 --rsh-command=COMMAND リモートアーカイブにアクセスする際に、rsh の代わりに COMMAND を使います。 上記の -f オプションの説 明を参照してください。 --volno-file=FILE このオプションを --multi-volume とともに使うと、 tar は、 今マルチボリュームアーカイブのどのボ リュームを処理しているかを、FILE に記録することになります。 レコードとブロック (Device blocking) -b, --blocking-factor=BLOCKS レコードサイズを BLOCKSx512 バイトにします (訳注: BLOCKS は 1 レコードを構成する 512 バイトのブ ロックの数、すなわち、ブロッキング係数。たいていの場合、デフォルトは 20 になっています)。 -B, --read-full-records 内容表示や抽出をする際、ファイルの末尾を示すマーカーを含むレコードが、1 レコードの大きさに満たない 不完全な入力レコードであっても許容します。 (訳注: tar はアーカイブの読み書きをレコード単位で行いま す。このオプションは、1 レコードの大きさに達しない入力に対する処理を指定しています。info tar Reading を参照してください)。 -i, --ignore-zeros アーカイブ中の 0 ばかりからなるブロックを無視します。通常、0 で埋められた 512 バイトブロックが 2 個連続すると、それはファイルの末尾 (EOF) を意味し、これに出会うと tar は読み込みを止めます。 この オプションを指定すると、0 のブロックに出会っても読み込みを続けるので、 -A オプションを付けて作成し たアーカイブを読み込むとき役に立ちます。 --record-size=NUMBER レコードサイズを設定します。NUMBER は 1 レコードあたりのバイト数であり、512 の倍数でなければなりま せん。 サイズ接尾辞を付けることもでき、たとえば、--record-size=10K は 10 キロバイトです。有効な接 尾辞のリストについては、 サブセクション「サイズ接尾辞」を見てください。 アーカイブ形式の選択 -H, --format=FORMAT 指定した形式のアーカイブを作成します。 有効なフォーマットは以下のとおりです: gnu GNU tar 1.13.x 形式 oldgnu GNU tar 1.12 以前の GNU 形式 pax, posix POSIX 1003.1-2001 (pax) 形式 ustar POSIX 1003.1-1988 (ustar) 形式 v7 古い V7 tar 形式 --old-archive, --portability --format=v7 と同じ。 --pax-option=keyword[[:]=value][,keyword[[:]=value]]... (-H pax で) PAX アーカイブを作成する際の pax のキーワードを調整する。このオプションは pax(1) ユー ティリティの -o オプションと等価です。 --posix --format=posix と同じ。 -V, --label=TEXT TEXT というボリューム名 (訳注: ボリュームラベルとも言う) を付けて、アーカイブを作成する。内容表示 や抽出をする際にこのオプションを指定した場合は、TEXT をボリューム名の glob パターンとして使用しま す。 圧縮オプション -a, --auto-compress 圧縮プログラムを決定するためにアーカイブ拡張子を使用します。 -I, --use-compress-program=COMMAND データを COMMAND でフィルタする。コマンドは、伸長するための -d オプションを解するものでなければな りません。 引数にはコマンドラインオプションも含めることができます。 -j, --bzip2 アーカイブを bzip2(1) でフィルタします。 -J, --xz アーカイブを xz(1) でフィルタします。 --lzip アーカイブを lzip(1) でフィルタします。 --lzma アーカイブを lzma(1) でフィルタします。 --lzop アーカイブを lzop(1) でフィルタします。 --no-auto-compress 圧縮プログラムを決定するためにアーカイブ拡張子を使用しません。 -z, --gzip, --gunzip, --ungzip アーカイブを gzip(1) でフィルタします。 -Z, --compress, --uncompress アーカイブを compress(1) でフィルタします。 --zstd アーカイブを zstd(1) でフィルタします。 ローカルファイルの選択 --add-file=FILE FILE をアーカイブに追加します (ファイル名がダッシュで始まる場合に便利です)。 --backup[=CONTROL] 上書きや削除をする前にバックアップを行います。引数 CONTROL を指定すれば、それがバックアップのやり 方を決めます。有効な値は以下のとおりです。 (訳注: このオプションは、アーカイブの作成 (-c)、抽出 (-x)、どちらでも使えるが、-A, -r, -u, --delete では無効のようです。) none, off バックアップを全く作成しません。 t, numbered 番号付きのバックアップを作成します。 nil, existing 番号付きのバックアップが存在すれば、番号付きのバックアップを、 存在しなければ、単純形式の バックアップを作成します。 never, simple 常に単純形式のバックアップを行います。 CONTROL が指定されない場合、環境変数 VERSION_CONTROL から値を取得します。それも指定されていない場 合は、existing が指定されているものと見なされます。 -C, --directory=DIR 何らかの操作を行う前に、ディレクトリ DIR に移動します。 このオプションは順番を意識します。すなわ ち、その後に続くすべてのオプションに影響を及ぼします。 --exclude=PATTERN glob(3) スタイルのワイルドカードパターン PATTERN にマッチするファイルを除外します (訳注: つま り、PATTERN の指定にシェル式のワイルドーカードが使えるということです)。 --exclude-backups バックアップファイルとロックファイルを除外します。 --exclude-caches CACHEDIR.TAG という名前のファイルを含むディレクトリの中身を除外します。 ただし、タグファイル自体は 除外しません。(訳注: CACHEDIR.TAG とそれが含むべき内容については、 <http://www.brynosaurus.com/cachedir/spec.html>、または <http://bford.info/cachedir/spec.html> を 見てください。) --exclude-caches-all CACHEDIR.TAG という名前のファイルを含むディレクトリとタグファイル自体を除外します。 --exclude-caches-under CACHEDIR.TAG という名前のファイルを含むディレクトリ以下のすべてを除外します (訳注: ただし、その ディレクトリ自体は除外しません)。 --exclude-ignore=FILE ディレクトリをダンプする前に、FILE というファイルがそこに含まれているかを調べます。 含まれている場 合は、そのファイルから除外パターンを読み込みます。 このパターンは、そのディレクトリにのみ影響しま す。 --exclude-ignore-recursive=FILE --exclude-ignore と同様ですが、FILE から読み込んだパターンは、そのディレクトリとすべてのサブディレ クトリに影響を及ぼします。 --exclude-tag=FILE FILE というファイルを含むディレクトリの中身を除外します。ただし、 FILE 自体は除外しません。 --exclude-tag-all=FILE FILE というファイルを含むディレクトリを除外します。 --exclude-tag-under=FILE FILE というファイルを含むディレクトリ以下のすべてを除外します (訳注: ただし、そのディレクトリ自体 は除外しません)。 --exclude-vcs バージョン管理システムのディレクトリを除外します。 --exclude-vcs-ignores VCS 独自の除外ファイルからパターンを読み込み、それにマッチするファイルを除外します。 サポートされ ているファイルは、 .cvsignore, .gitignore, .bzrignore, .hgignore です。 -h, --dereference シンボリックリンクを辿り、それが指しているファイルをアーカイブに入れます (訳注: シンボリックリンク が指している実ファイルが、 同一アーカイブに収録されるときは、そのハードリンクを、収録されないとき は実ファイルを、 シンボリックリンクのファイル名でアーカイブに入れるようです)。 --hard-dereference ハードリンクを辿り、それが指しているファイルをアーカイブに入れます (訳注: ハードリンクとしてではな く、独立したファイルとしてアーカイブに入れます)。 -K, --starting-file=MEMBER アーカイブ内の指定されたメンバーから (抽出や内容表示を) 開始します。 --newer-mtime=DATE DATE 以降にデータが変更されたファイルを処理の対象にします。 DATE が / または . で始まる場合は、 ファイル名と見なされ、そのファイルの mtime が日付として使われます。 --no-null これより前に指定された --null オプションの効果を無効にします。 --no-recursion ディレクトリにおいて自動的な下降をしないようにします。 --no-unquote 指定された入力ファイル名やメンバー名中の、バックスラッシュでクォートされたシーケンスを解釈・変換し ません (訳注: すなわち、\t, \n, \b などをタブ、改行などとしてではなく、文字通り \t, \n, \b として 扱う。なお、このオプションはコマンドライン上の位置が意味を持ちます)。 --no-verbatim-files-from ファイルリストから読み込んだ各行を、あたかもコマンドラインから打ち込まれたかのように処理します。 すなわち、前後の空白を除去した後の文字列がダッシュで始まる場合は、tar のコマンドラインオプションと 見なします。 これはデフォルトの動作です。この --no-verbatim-files-from オプションがあるの は、--verbatim-files-from オプションを指定した後で動作を元に戻すためです。 このオプションは指定する位置が意味を持ちます。 すなわち、コマンドラインでこのオプションより後に指 定されるすべての --files-from オプションに影響し、--verbatim-files-from オプションが現れるか、コマ ンドラインの末尾に達するまで効果が続きます。 --no-null オプションを指定すると、このオプションが暗黙裡に設定されます。 --null 後に続く -T オプションに対して、null で終端された名前を文字通りに読み込むように指示します (つま り、-T オプションでダッシュで始まる名前の特別扱いをしなくなります)。 --verbatim-files-from も参照してください。 -N, --newer=DATE, --after-date=DATE DATE より新しいファイルのみを格納します。 DATE が / または . で始まっている場合は、 ファイル名と見 なされ、そのファイルの mtime が日付として使われます。 --one-file-system アーカイブを作成する際に、ローカルファイルシステムに限定します。 -P, --absolute-names アーカイブを作成する際に、ファイル名の先頭のスラッシュを除去しません。 --recursion ディレクトリを再帰的に辿ります (デフォルト)。 --suffix=STRING 削除する前にバックアップを作り、拡張子を通常のものから変更します。 環境変数 SIMPLE_BACKUP_SUFFIX によって変更されていないかぎり、 デフォルトの拡張子は ~ です。 -T, --files-from=FILE アーカイブから抽出する名前やアーカイブに格納する名前を FILE から読み込みます。 別の指定がないかぎり、FILE の内容は、ASCII LF で区切られた名前のリストでなければなりません (つま り、1 行に 1 個の名前です)。 読み込まれた名前は、コマンドラインの引数と同じやり方で処理されます。 すなわち、引用符が除去され、単語に分割され、そして、ダッシュ (-) で始まる文字列があれば、tar のコ マンドラインオプションとして処理されます。 この動作が望ましくない場合は、 --verbatim-files-from オプションでやめさせることができます。 --null オプションを指定すると、tar は FILE 中の名前の区切りを LF ではなく、ASCII NUL 文字にしま す。 これはリストが find(1) の -print0 アクションで生成されている場合に役に立ちます。 --unquote 指定された入力ファイル名やメンバー名中の、バックスラッシュでクォートされたシーケンスを解釈・変換し ます (デフォルト)。(訳注: すなわち、\t, \n, \b などをタブ、改行などとして扱うということです。 な お、このオプションはコマンドライン上の位置が意味を持ちます。) --verbatim-files-from ファイルリストから読み込んだ各行がダッシュで始まっていても、フィル名として扱います。 ファイルリス トの取得には、--files-from (-T) オプションを使用します。tar のデフォルトの動作は、ファイルリストか ら読み込んだ名前を、 あたかもコマンドラインから打ち込まれたかのように処理することです。 すなわ ち、ダッシュで始まっている名前があれば、 tar のオプションと見なします。この --verbatim-files-from オプションは、そうした動作をしないようにします。 このオプションは、コマンドラインでこれより後に指定されるすべての --files-from オプションに影響を与 えます。 このオプションの効果は、 --no-verbatim-files-from オプションによって元に戻すことができ ます。 --null オプションを指定すると、このオプションが暗黙裡に設定されます。 --add-file も参照してください。 -X, --exclude-from=FILE FILE にリストされたパターンにマッチするファイルを除外します。 ファイル名の変更 --strip-components=NUMBER 抽出時にファイル名の先頭から NUMBER 個の構成要素 (訳注: 要するに、NUMBER 個のディレクトリ部分) を 取り去ります。 --transform=EXPRESSION, --xform=EXPRESSION sed の置換表現 EXPRESSION をファイル名の変更に使います。 ファイル名のマッチングに関するオプション これらのオプションは除外 (exclude) パターンと包摂 (include) パターンの両方に影響します。 --anchored パターンはファイル名の先頭にマッチします。 --ignore-case 大文字小文字を区別しません。 --no-anchored パターンはどの / の後にでもマッチします (除外時のデフォルト)。 --no-ignore-case 大文字小文字を区別してマッチングを行います (デフォルト)。 --no-wildcards パターンの文字列を文字通りに解してマッチングを行います (訳注: これはワイルドカード文字をただの文字 として扱うということです。\t, \n などを文字通りに読む方は、--no-unquote を使います)。 --no-wildcards-match-slash ワイルドカードは / にマッチしません。 --wildcards ワイルドカードを使います (除外時のデフォルト)。 --wildcards-match-slash ワイルドカードは / にマッチします (除外時のデフォルト)。 情報出力 --checkpoint[=N] N レコード (デフォルトは 10) ごとに進捗メッセージを表示します。 --checkpoint-action=ACTION チェックポイントごとに ACTION を実行します。 --clamp-mtime --mtime で指定された日時より新しいファイルに対してのみ、日時を設定します。 --full-time 高精度でファイルの日時を表示します (訳注: tar 1.32 では秒まで。-v オプションが必要)。 --index-file=FILE 詳細出力を FILE に書き出します。 -l, --check-links ハードリンクのすべてをダンプしていない場合に、その旨メッセージを出します。 --no-quote-chars=STRING STRING に列挙された文字を、表示するときにクォートする文字のリストから外します (訳注: リストから外 せるのは、--quote-chars によって追加された文字だけであり、 デフォルトでクォートすることになってい る文字を外せるわけではありません。次の項目ともども info tar を参照してください)。 --quote-chars=STRING STRING に列挙された文字を、表示するときにクォートする文字のリストに追加します。 --quoting-style=STYLE ファイル名やメンバー名を表示するときのクォート形式を設定します。 STYLE に指定できる値は以下のとお りです。 literal, shell, shell-always, c, c-maybe, escape, locale, clocale. -R, --block-number 各メッセージにアーカイブ中のブロック番号を付けます。 --show-omitted-dirs 内容表示や抽出をする際、検索の基準にマッチしないディレクトリに出会うごとに、その旨表示します (訳 注: 要するに、何らかの理由で、内容表示や抽出をスキップするディレクトリがあれば、 それを知らせると いうことです。info tar verbose を実行すると、そのセクションにこのオプションのかなり詳しい説明があ ります)。 --show-transformed-names, --show-stored-names ファイル名やアーカイブ名を表示する際、--strip や --transform オプションで変更した後の名前を使いま す (訳注: デフォルトでは変更前の名前が使われます)。 --totals[=SIGNAL] アーカイブを処理した後で総バイト数を表示します。 SIGNAL を指定すると、そのシグナルが送られたときの 総バイト数を表示します。 指定できるシグナルは、 SIGHUP, SIGQUIT, SIGINT, SIGUSR1, SIGUSR2 です。接 頭辞の SIG は省略できます。 --utc ファイル更新日時を UTC で表示します。 -v, --verbose 処理したファイルの詳しいリストを出力します。 このオプションをコマンドラインで指定した数だけ、詳細 レベルが 1 つずつ上がります。最大の詳細レベルは 3 です。それぞれの詳細レベルで tar の出力がどのよ うになるかについては、GNU Tar Manual のサブセクション 2.5.2 "The '--verbose' Option" に詳しい説明 があるので、参照してください (訳注: info tar 'verbose tutorial' で見ることができます)。 --warning=KEYWORD KEYWORD で特定される警告メッセージを有効、または無効にします。 KEYWORD の前に no- を付ければ、その メッセージは抑制され、 付けなければ、有効になります。 --warning のメッセージを複数指定すると、前の指定に後のものが積み重なって行きます。 以下のキーワードは tar の操作全般を制御するものです: all すべての警告メッセージを有効にします。これがデフォルトです。 none すべての警告メッセージを無効にします。 filename-with-nuls "%s: 読み込んだファイル名にヌル文字が含まれています" alone-zero-block "%s に孤立したゼロブロックがあります" 以下のキーワードは tar --create に対して適用されます: cachedir "%s: キャッシュディレクトリのタグ %s があります; %s" file-shrank "%s: ファイルが %s バイト小さくなったので、ゼロで埋めます" xdev "%s: ファイルが異なるファイルシステム上にあるので、ダンプしません" file-ignored "%s: 未知のファイルタイプです。このファイルは無視します" "%s: ソケットは無視します" "%s: door は無視します" file-unchanged "%s: ファイルが変更されていないので、ダンプしません" ignore-archive "%s: ファイルがこのアーカイブそのものなので、ダンプしません" file-removed "%s: ファイルが読み込む前に削除されました" file-changed "%s: ファイルが読み込み中に変更されました" failed-read 読み込み不能なファイルやディレクトリについての警告メッセージを抑止します。 このキーワードは --ignore-failed-read オプションと一緒に使用した場合にのみ適用されます。 以下のキーワードは tar --extract に対して適用されます: existing-file "%s: 既存ファイルをスキップします" timestamp "%s: あまりにも古いタイムスタンプ %s" "%s: タイムスタンプ %s は %s 秒後の日時を示しています" contiguous-cast "連続したファイル (contiguous files) を普通のファイルとして取り出します" symlink-cast "シンボリックリンクをハードリンクとして取り出してみます" unknown-cast "%s: 未知のファイルタイプ '%c'。通常のファイルとして抽出します" ignore-newer "現在の %s の方が新しいか同じです" unknown-keyword "未知の拡張ヘッダキーワード '%s' を無視します" decompress-program ある伸長プログラムの実行に失敗して、 別のプログラムで代用しようとしたときに出る詳しい説明を 制御します。 この警告は、デフォルトでは無効になっています (--verbose 使用時を除きます)。 こ の警告を有効にしたときに表示されるよくある例は、次のようなものです: $ tar --warning=decompress-program -x -f archive.Z tar (child): cannot run compress: No such file or directory tar (child): trying gzip このメッセージは、tar が最初に compress を使って archive.Z を伸長しようとして、それに失敗 し、gzip に切り替えたことを示しています。 record-size "レコードサイズ = %lu ブロック" インクリメンタルな抽出を制御するキーワード: rename-directory "%s: ディレクトリ名が %s から変更されました" "%s: ディレクトリ名が変更されました" new-directory "%s: ディレクトリが新しく作られました" xdev "%s: ディレクトリが異なるデバイス上にあるので消去しません" bad-dumpdir "不正形式の dumpdir: 'X' が未使用" -w, --interactive, --confirmation すべての動作に対して確認を求めます。 互換オプション -o 作成時は --old-archive と同じであり、抽出時は --no-same-owner と同じです。 サイズ接尾辞 接尾辞 単位 バイトサイズ b ブロック SIZE x 512 B キロバイト SIZE x 1024 c バイト SIZE G ギガバイト SIZE x 1024^3 K キロバイト SIZE x 1024 k キロバイト SIZE x 1024 M メガバイト SIZE x 1024^2 P ペタバイト SIZE x 1024^5 T テラバイト SIZE x 1024^4 w ワード SIZE x 2
返り値
tar の終了コードは、要求された操作の遂行に成功したかどうか、 成功しなかった場合は、どのようなエラーが起き たかを示しています。 0 成功して終了しました。 1 いくつかのファイルに相違があります。 tar が --compare (--diff, -d) コマンドラインオプションととも に起動された場合は、 アーカイブ内のファイルにディスク上の同名ファイルと異なっているものがあるとい うことです。 --create, --append, --update オプションのいずれかが指定された場合は、アーカイブ処理の 最中に変更されたファイルがあり、 従って、生成されたアーカイブはファイルセットの正確なコピーを保持 していないことを示しています。 2 致命的なエラー。 これは、何らかの致命的で回復不能なエラーが起きたことを表しています。 tar によって起動されたサブプロセスが、0 以外の終了コードで終了した場合は、tar 自身もその終了コードで終了 します。たとえば、圧縮オプション (-z など) を使用したとき、外部の圧縮プログラムが実行に失敗すると、そうし たことが起こり得ます。 他の例としては、rmt がリモートデバイスへのバックアップ中に失敗した場合などがありま す。
関連項目
bzip2(1), compress(1), gzip(1), lzma(1), lzop(1), rmt(8), symlink(7), xz(1), zstd(1). 詳細な tar マニュアルは、 info tar を実行するか、 emacs(1) の info モードを使用すれば、読むことができま す。 また、以下のサイトに行けば、様々な形式にした GNU tar マニュアルのオンライン版を見つけることができます。 http://www.gnu.org/software/tar/manual
バグ報告
バグは <bug-tar@gnu.org> に報告してください。
著作権
Copyright © 2013-2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. TAR 2020/06/13 TAR(1)