書式
伝統的な使用法
tar
{A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo]
[ARG...]
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...]
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
は、ファイルをアーカイブに入れる前に、
それがスパースファイルかどうかを判断しようとします。
そして、もしそうなら、ファイル中の空っぽの部分をダンプしないことによって、
生成するアーカイブのサイズを小さくします。
ファイル属性の操作
- --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
を使うと、アーカイブを作成する際のディスクシークの回数を減らし、
そうすることで、実行時間をかなりスピードアップすることができます。
このソート順は、下層で動いているシステムが必要な情報を提供する場合にのみ使用できます。
デバイスの選択と交換
- -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
の環境変数に加えて、以下の環境変数を継承します。
指定された 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
キロバイトです。有効な接尾辞のリストについては、
サブセクション「サイズ接尾辞」を見てください。
ローカルファイルの選択
- --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
にリストされたパターンにマッチするファイルを除外します。
情報出力
- --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
がリモートデバイスへのバックアップ中に失敗した場合などがあります。
バグ報告
バグは <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.