日本語 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.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
TAR(1) FreeBSD 一般コマンドマニュアル TAR(1) 名称 tar -- テープアーカイブを操作する 書式 tar [bundled-flags <args>] [<file> | <pattern> ...] tar {-c} [options] [files | directories] tar {-r | -u} -f archive-file [options] [files | directories] tar {-t | -x} [options] [patterns] 解説 tar は、ストリーミングアーカイブファイルを作成して、操作します。この実装 は、tar, pax, cpio, zip, jar, ar, xar, rpm, 7-zip と ISO 9660 cdrom イ メージから抽出することができ、tar, pax, cpio, ar, zip, 7-zip shar アーカ イブを作成することができます。 最初の書式の形式は、``バンドルされた'' (bundled) オプションの単語を示しま す。この使用法は、歴史的な実装との互換性のために提供されています。詳細に ついては、下記の「互換性」を参照してください。 その他の書式の形式は、好ましい使用法を示します。tar への最初のオプション は、次のリストのモード指示子です: -c 指定されたアイテムを含んでいる、新しいアーカイブを作成します。長 いオプション形式は、--create です。 -r -c に似ていますが、新しいエントリは、アーカイブに追加されます。こ れは、通常のファイルに格納された圧縮されていないアーカイブでのみ 動作することに注意してください。-f オプションが必要です。長いオプ ション形式は、--append です。 -t 標準出力にアーカイブの内容をリストします。長いオプション形式は、 --list です。 -u -r に似ていますが、新しいエントリは、それらが、アーカイブに対応し ているエントリより新しい更新日付がある場合のみ、追加されます。こ れは、通常のファイルに格納された圧縮されていないアーカイブでのみ 動作することに注意してください。-f オプションが必要です。長い形式 は、--update です。 -x アーカイブからディスクに抽出します。同じ名前があるファイルがアー カイブに複数回現れるなら、各コピーは、後のコピーが、初期のコピー を (置き換えて) 上書きして抽出されます。長いオプション形式は、 --extract です。 -c, -r または -u モードで、それぞれ指定されたファイルまたはディレクトリ は、コマンド行で指定された順序でアーカイブに追加されます。デフォルトで、 各ディレクトリの内容もアーカイブされます。 抽出またはリストモードで、コマンド行全体は、アーカイブがオープンされる前 に、読み込まれ、解析されます。コマンド行のパス名またはパターンは、アーカ イブのどのアイテムが処理されるべきであるかを示します。パターンは、tcsh(1) で文書化されるようにシェルスタイルのグロブ (ファイル名置換) パターンで す。 オプション 明記していないオプションは、全ての操作モードに適用可能です。 @archive (c と r モードのみ) 指定されたアーカイブは、オープンされ、そのエ ントリは、現在のアーカイブに付け加えられます。簡単な例として、 tar -c -f - newfile @original.tar は、新しいアーカイブを、ファイル newfile と original.tar のすべて のエントリを含んでいる標準出力に書き込みます。対照的に、 tar -c -f - newfile original.tar は、ただ 2 つのエントリで新しいアーカイブを作成します。同様に、 tar -czf - --format pax @- は、(形式は、自動的に決定される) 標準入力からアーカイブを読み込 み、それを、標準出力に gzip で圧縮された pax 形式のアーカイブに変 換します。このような方法で、1 つの形式から別のものにアーカイブを 変換するために tar を使用することができます。 -a, --auto-compress (c モードのみ) 1 組の書式と圧縮を決定するアーカイブ接尾辞を使用し ます。単純な例として、 tar -a -cf archive.tgz source.c source.h は、制限された pax 形式と gzip 圧縮で新しいアーカイブを作成し、 tar -a -cf archive.tar.bz2.uu source.c source.h は、制限された pax 形式と bzip2 圧縮と uuencode 圧縮で新しいアー カイブを作成し、 tar -a -cf archive.zip source.c source.h は、zip 形式で新しいアーカイブを作成し、 tar -a -jcf archive.tgz source.c source.h は、``-j'' オプションを無視し、制限された pax 形式と gzip 圧縮で 新しいアーカイブを作成し、 tar -a -jcf archive.xxx source.c source.h は、それが未知の接尾辞か、または接尾辞がないなら、制限された pax 形式と bzip2 圧縮で新しいアーカイブを作成します。 --acls (c, r, u, x モードのみ) アーカイブまたは抽出された POSIX.1e また は NFSv4 ACLs。これは、c、r と u モード (Mac OS X を除いて) のデ フォルトの振る舞いであるか、または tar が、root として x モードで 実行しているなら、--no-acls の逆です。Mac OS X で、このオプション は、拡張された ACLs から NFSv4 ACLs に変換します。拡張された ACLs を格納するためには、--mac-metadata オプションが、好まれます。 -B, --read-full-blocks 他の tar(1) の実装との互換性のために無視されます。 -b blocksize, --block-size blocksize テープドライブ I/O のための、512 バイトレコード単位のブロックサイ ズを指定します。原則として、この引数は、テープドライブから読み込 むか、またはテープドライブに書き込むときだけ必要とされ、通常、20 レコード (10240 バイト) のデフォルトのブロックサイズが極めて一般 的であるときでさえ、必要とされません。 -C directory, --cd directory, --directory directory c と r モードでは、続くファイルを追加する前に、ディレクトリを変更 します。x モードでは、アーカイブをオープンした後で、アーカイブか ら抽出する前に、ディレクトリを変更します。 --chroot (x モードのみ) 任意の -C オプションを処理した後、および任意のファ イルを抽出する前にカレントディレクトリを chroot() します。 --clear-nochange-fflags (x モードのみ) それらを置き換えるためにファイルシステムを削除する 前に、削除を防止するプラットフォーム特有のファイルの属性とファイ ルフラグをクリアします。 --exclude pattern 指定されたパターンに一致しているファイルまたはディレクトリを処理 しません。例外は、コマンド行で指定されたパターンまたはファイル名 に優先することに注意してください。 --exclude-vcs バージョン制御システム `Arch', `Bazaar', `CVS', `Darcs', `Mercurial', `RCS', `SCCS', `SVN' と `git' によって内部で使用され るファイルまたはディレクトリを処理しません。 --fflags (c, r, u, x モードのみ) アーカイブまたは抽出されたファイル特有の ファイル属性とファイルのフラグ。これは、c、r と u モードのデフォ ルトの振る舞いであるか、または tar が、x モードで実行しているな ら、--no-fflags の逆です。 --format format (c, r, u モードのみ) 作成されるアーカイブのために指定された形式を 使用します。サポートされる形式は、``cpio'', ``pax'', ``shar'' と ``ustar'' を含みます。他の形式も、またサポートされます。現在サ ポートされる形式の詳細については、libarchive-formats(5) を参照し てください。r と u モードで、既存のアーカイブを拡張するとき、ここ で指定された形式は、ディスク上の既存のアーカイブの形式と互換性が なければなりません。 -f file, --file file 指定されたファイルからアーカイブを読み込むか、または指定された ファイルにアーカイブを書き込みます。ファイル名は、標準入力または 標準出力に対して - を指定することができます。デフォルトは、システ ムによって変わります。FreeBSD では、デフォルトは、/dev/sa0 です。 Linux では、デフォルトは、/dev/st0 です。 --gid id 提供されたグループ ID 番号を使用します。抽出のときに、これは、 アーカイブのグループ ID を上書きします。アーカイブのグループ名 は、無視されます。作成のとき、これは、ディスクから読み込むグルー プ ID を上書きします。また、--gname が指定されないなら、グループ 名は、グループ ID にマッチするように設定されます。 --gname name 提供されたグループ名を使用します。抽出のときに、これは、アーカイ ブのグループ名を上書きします。提供されたグループ名がシステムに存 在していななら、(アーカイブまたは --gid オプションからの) グルー プ ID が代わりに使用されます。作成のとき、これは、アーカイブに格 納されるグループ名を設定します。名前は、システムグループデータ ベースに対して検証されません。 -H (c と r モードのみ) コマンド行で指定されたシンボリックリンクをた どります。リンク自体ではなく、リンクのターゲットが、アーカイブさ れます。 -h (c と r モードのみ) -L と同義語です。 -I -T と同義語です。 --help 使用法を表示します。 --hfsCompression (x モードのみ) Mac OS X 特有 (v10.6 以降)。HFS+ 圧縮で抽出された 通常ファイルを圧縮します。 --ignore-zeros GNU tar との互換性のための --options read_concatenated_archives の別名。 --include pattern 指定されたパターンと一致しているファイルまたはディレクトリだけを 処理します。--exclude で指定された除外が、含めるものより優先する ことに注意してください。含まれるものが明示的に指定されないなら、 すべてのエントリがデフォルトで処理されます。--include オプション は、アーカイブをフィルタリングするとき、特に役に立ちます。例え ば、コマンド tar -c -f new.tar --include='*foo*' @old.tgz は、文字列 `foo' を含んでいる old.tgz からエントリだけを含んでい る新しいアーカイブ new.tar を作成します。 -J, --xz (c モードのみ) 結果のアーカイブを xz(1) で圧縮します。抽出または リストモードで、このオプションは、無視されます。この tar 実装は、 アーカイブを読み込むとき、自動的に XZ 圧縮を認識していることに注 意してください。 -j, --bzip, --bzip2, --bunzip2 (c モードのみ) bzip2(1) で結果のアーカイブを圧縮します。抽出また はリストモードで、このオプションは、無視されます。この tar 実装 は、アーカイブを読み込むとき、自動的に bzip2 圧縮を認識しているこ とに注意してください。 -k, --keep-old-files (x モードのみ) 既存のファイルに上書きしません。特に、ファイルが アーカイブに複数回現れるなら、後のコピーは、前のコピーを上書きし ません。 --keep-newer-files (x モードのみ) 抽出されるアーカイブに出現するバージョンより新しい 既存のファイルを上書きしません。 -L, --dereference (c と r モードのみ) すべてのシンボリックリンクをたどります。通 常、シンボリックリンクは、そのようなものとしてアーカイブされま す。このオプションで、リンクのターゲットが、代わりにアーカイブさ れます。 -l, --check-links (c と r モードのみ) 各ファイルへのすべてのリンクがアーカイブされ ていないいなら、警告メッセージを発行します。 --lrzip (c モードのみ) lrzip(1) で結果のアーカイブを圧縮します。抽出モー ドまたはリストモードで、このオプションは、無視されます。この tar 実装は、アーカイブを読み込むとき、自動的に lrzip 圧縮を認識してい ることに注意してください。 --lz4 (c モードのみ) それを書き込む前に、lz4 互換の圧縮でアーカイブを圧 縮します。抽出またはリストモードで、このオプションは、無視されま す。この tar 実装は、アーカイブを読み込むとき、自動的に zstd 圧縮 を認識していることに注意してください。 --zstd (c モードのみ) それを書き込む前に、zstd 互換の圧縮でアーカイブを 圧縮します。抽出またはリストモードで、このオプションは、無視され ます。この tar の実装は、アーカイブを読み込むとき、自動的に zstd 圧縮を認識することに注意してください。 --lzma (c モードのみ) オリジナルの LZMA アルゴリズムで結果のアーカイブを 圧縮します。抽出またはリストモードで、このオプションは、無視され ます。このオプションの使用は、お勧めできません、新しいアーカイブ は、代わりに --xz で作成されるべきです。この tar 実装は、アーカイ ブを読み込むとき、自動的に LZMA 圧縮を認識していることに注意して ください。 --lzop (c モードのみ) lzop(1) で結果のアーカイブを圧縮します。抽出モード またはリストモードで、このオプションは、無視されます。この tar 実 装は、アーカイブを読み込むとき、自動的に LZO 圧縮を認識しているこ とに注意してください。 -m, --modification-time (x モードのみ) 更新時刻を抽出しません。デフォルトで、更新時刻は、 アーカイブに格納された時刻に設定されます。 --mac-metadata (c, r, u and x モードのみ) Mac OS X 特有。AppleDouble 形式の copyfile(3) を使用するアーカイブまたは抽出された拡張 ACLs と拡張 されたファイル属性。これは、--no-mac-metadata の逆です。そして、 c、r と u モードのデフォルトの振る舞い、または tar が、root とし ての x モードで実行される場合。 -n, --norecurse, --no-recursion ディレクトリの内容で再帰的に操作しません。 --newer date (c, r, u モードのみ) 指定された日付より新しいファイルとディレクト リだけを含みます。これは、ctime エントリを比較します。 --newer-mtime date (c, r, u モードのみ) ctime エントリの代わりに mtime エントリを比 較することを除いて、--newer に似ています。 --newer-than file (c, r, u モードのみ) 指定されたファイルより新しいファイルとディレ クトリだけを含みます。これは、ctime エントリを比較します。 --newer-mtime-than file (c, r, u モードのみ) ctime エントリの代わりに mtime エントリを比 較することを除いて、--newer-than に似ています。 --nodump (c と r モードのみ) このファイルをスキップすることによって nodump ファイルフラグを尊重します。 --nopreserveHFSCompression (x モードのみ) Mac OS X 特有 (v10.6 以降)。アーカイブされる前に HFS+ 圧縮で圧縮された抽出された通常ファイルを圧縮しません。デフォ ルトで、HFS+ 圧縮で通常ファイルを再び圧縮します。 --null (-I または -T で使用) ファイル名またはパターンは、改行によってで はなく、ヌル文字によって区切られます。これは、find(1) への -print0 オプションによってファイル名の出力を読み込むためにしばし ば使用されます。 --no-acls (c, r, u, x モードのみ) POSIX.1e または NFSv4 ACLs をアーカイブま たは抽出しません。これは、--acls の逆で、tar が x モードで root 以外として実行されるなら、(Mac OS X での c、r、u と x モードのあ らゆるユーザとして) デフォルトの振る舞いです。 --no-fflags (c, r, u, x モードのみ) ファイル属性またはファイルフラグをアーカ イブまたは抽出しません。これは、--fflags の逆で、tar が x モード で root 以外として実行されるなら、デフォルトの振る舞いです。 --no-mac-metadata (x モードのみ) Mac OS X 特有。AppleDouble 形式の copyfile(3) を使 用して、ACLs と拡張されたファイル属性をアーカイブまたは抽出しませ ん。これは、--mac-metadata の逆です。そして、tar が、x モードの root 以外として実行される場合のデフォルトの振る舞いです。 --no-safe-writes (x モードのみ) テンポラリファイルを作成せず、オリジナルのものを置 き換えるために、rename(2) を使用します。これは、--safe-writes の 逆です。 --no-same-owner (x モードのみ) 所有者とグループ ID を抽出しません。これは、 --same-owner の逆で、tar が root 以外のユーザで実行されているな ら、デフォルトの振る舞いです。 --no-same-permissions (x モードのみ) 全部のパーミッション (SGID、SUID、スティッキビッ ト、ファイル属性またはファイルフラグ、拡張されたファイル属性と ACL) を抽出しません。これは、-p の逆で、tar が root 以外のユーザ で実行されているなら、デフォルトの振る舞いです。 --no-xattrs (c, r, u, x モードのみ) 拡張されたファイル属性をアーカイブまたは 抽出しません。これは、--xattrs の逆で、tar が x モードで root 以 外として実行されるなら、デフォルトの振る舞いです。 --numeric-owner これは、--uname "" --gname "" と同等です。抽出のとき、それによっ て、アーカイブのユーザとグループ名は、数値ユーザとグループ ID を 優先して無視されます。作成のとき、それによって、ユーザとグループ 名は、アーカイブに格納されません。 -O, --to-stdout (x, t モードのみ) 抽出 (-x) モードで、ファイルは、ディスクに抽出 されずに標準出力に書き込まれます。リスト (-t) モードで、ファイル のリストは、通常の標準出力でなく標準エラーに書き込まれます。 -o (x モード) アーカイブで指定されたものでなく、プログラムを実行して いるユーザのユーザとグループを使用します。-p が指定されず、プログ ラムが、root ユーザによって実行されていないなら、これは、意味がな いことに注意してください。この場合に、アーカイブからファイルモー ドとフラグは、復元されますが、アーカイブの ACL または所有者情報 は、破棄されます。 -o (c, r, u モード) --format ustar と同義語です。 --older date (c、r、u モードのみ) 指定された日付より古いファイルとディレクトリ のみを含めます。これは、ctime エントリを比較します。 --older-mtime date (c、r、u モードのみ) ctime エントリの代わりに mtime エントリを比 較することを除いて、--older と同様です。 --older-than file (c、r、u モードのみ) 指定されたファイルより古いファイルとディレク トリのみを含めます。これは、ctime エントリを比較します。 --older-mtime-than file (c、r、u モードのみ) ctime エントリの代わりに mtime エントリを比 較することを除いて、--older-than, と同様です。 --one-file-system (c, r と u モード) マウントポイントを交差しません。 --options options 特定のモジュールのためのオプションの振る舞いを選択する。引数は、 コンマで区切られたされたキーワードと値を含むテキスト文字列です。 これらは、それらの形式がどのように振る舞うかを制御するために特定 の形式を取り扱うモジュールに渡されます。各オプションには、次の形 式の 1 つがあります: key=value key は、それをサポートするすべてのモジュールで指定された 値に設定されます。このキーをサポートしないモジュールは、 それを無視します。 key key は、それをサポートするすべてのモジュールで有効にされ ます。これは、key=1 と同等です。 !key key は、それをサポートするすべてのモジュールで無効とされ ます。 module:key=value, module:key, module:!key 上記の通りですが、対応するキーと値は、名前が module に マッチしているモジュールだけ提供されます。 サポートされたモジュールの完全なリストと作成のためのキーと付加 モードは、archive_write_set_options(3) であり、抽出のためtリスト モードは archive_read_set_options(3) です。 サポートされたオプションの例は、次の通りです: iso9660:joliet Joliet 拡張をサポートします。これは、デフォルトで有効にさ れ、無効にするためには、!joliet または iso9660:!joliet を 使用します。 iso9660:rockridge ロックリッジ (Rock Ridge) 拡張をサポートします。これは、 デフォルトで有効にされ、無効にするためには、!rockridge ま たは iso9660:!rockridge を使用します。 gzip:compression-level gzip 圧縮レベルを指定する 1 から 9 の 10 進整数。 gzip:timestamp 格納タイムスタンプ。これは、デフォルトで有効です、無効に するためには、!timestamp または gzip:!timestamp を使用し ます。 lrzip:compression=type 圧縮メソッドとして type を使用します。サポートされる値 は、bzip2、gzip、lzo (超高速) と zpaq (最良、非常に遅い) です。 lrzip:compression-level lrzip 圧縮レベルを指定する 1 から 9 までの 10 進の整数。 lz4:compression-level lzop 圧縮レベルを指定している 1 から 9 までの 10 進整数。 lz4:stream-checksum ストリームのチェックサムを有効にします。これは、デフォル トで、無効にするために lz4:!stream-checksum を使用しま す。 lz4:block-checksum ブロックのチェックサムを有効にします (デフォルトで無効に されます)。 lz4:block-size lz4 圧縮ブロックサイズを指定している 4 から 7 までの 10 進整数 (7 は、デフォルトで設定されます)。 lz4:block-dependence 圧縮比率を改善するために圧縮されたディクショナリのための 圧縮されているブロックの以前のブロックを使用します。 zstd:compression-level zstd 圧縮レベルを指定している 1 から 22 までの 10 進数の 整数。 lzop:compression-level lzop 圧縮レベルを指定する 1 から 9 までの 10 進の整数。 xz:compression-level xz 圧縮レベルを指定する 0 から 9 の 10 進整数。 mtree:keyword mtree ライタモジュールによって、利用者は、どの mtree キー ワードが出力中に含まれるかを指定できます。サポートしてい るキーワードは、次の通りです: cksum, device, flags, gid, gname, indent, link, md5, mode, nlink, rmd160, sha1, sha256, sha384, sha512, size, time, uid, uname。デフォル トは、次と同等です: ``device, flags, gid, gname, link, mode, nlink, size, time, type, uid, uname''。 mtree:all 上記のキーワードのすべてを有効にする。また、利用者は、す べてのキーワードを無効にするために mtree:!all を使用でき ます。 mtree:use-set 出力中に /set 行の生成を有効にします。 mtree:indent 段付け (indent) オプションと 80 カラムに適合するように行 を分割することによって、人間に読み込み可能な出力を生成し ます。 zip:compression=type 圧縮メソッドとして type を使用します。サポートされている 値は、store (復元される) と deflate (gzip アルゴリズム) です。 zip:encryption 伝統的な zip 暗号化を使用する暗号化を有効にします。 zip:encryption=type 暗号化タイプとして type を使用します。サポートされる値 は、zipcrypt (伝統的な zip 暗号化)、aes128 (WinZip AES-128 暗号化) と aes256 (WinZip AES-256 暗号化) です。 read_concatenated_archives 複数の tar アーカイブがともに連結されたときに起こる、アー カイブの 0 クリアされたブロックを無視します。このオプショ ンなしで、最初の連結されたアーカイブの内容だけが読み込ま れます。このオプションは、GNU tar の -i, --ignore-zeros オプションに似ています。 提供されたオプションが任意のモジュールでサポートされないなら、そ れは、致命的なエラーです。 -P, --absolute-paths パス名を保持します。デフォルトで、絶対パス名 (/ 文字で始まるもの) は、アーカイブを作成するとき、とそれらを抽出するときの両方で先導 するスラッシュが削除されます。また、tar は、.. を含んでいるパス名 またはターゲットディレクトリがシンボリックリンクによって変更され るアーカイブエントリを抽出することを拒否します。このオプション は、これらの振る舞いを抑制します。 -p, --insecure, --preserve-permissions (x モードのみ) ファイルのパーミッションを保持します。アーカイブか ら抽出されたアイテムごとに、利用可能であるなら、ファイルモード、 ファイル属性またはファイルフラグ、拡張されたファイル属性と ACLs を含んで、完全なパーミッション復旧することを試みます。これは、 --no-same-permissions の逆で、tar が root として実行されているな ら、デフォルトです。また、--no-acls, --no-fflags, --no-mac- metadata または --no-xattrs を指定することによって部分的に上書き することができます。 --passphrase passphrase passphrase は、暗号化されたアーカイブを抽出するか、または作成する ために使用されます。現在、zip は、暗号化をサポートする唯一のサ ポートされた形式です。利用者が、どのくらい、このオプションの使用 が安全でないかを理解しない限り、このオプションを使用するべきでは ありません。 --posix (c, r, u モードのみ) --format pax と同義語です。 -q, --fast-read (x と t モードのみ) 各パターンまたはファイル名のオペランドにマッ チする最初のアーカイブエントリだけを、抽出するか、またはリストし ます。それぞれ指定されたパターンまたはファイル名がマッチするとす ぐに終了します。デフォルトで、アーカイブは、同じ名前の複数のエン トリがあるかもしれなくて、慣例により後のエントリが前のエントリを 上書きするので、常に最後まで読み込まれます。このオプションは、性 能の最適化として提供されています。 -S (x モードのみ) スパースファイルとしてファイルを抽出します。ディス ク上のすべてのブロックに関して、最初に、ヌルバイトだけを含むかど うかチェックして、そうでなければ、抽出します。これは、dd の conv=sparse オプションと同様に動作します。 -s pattern pattern (パターン) に従って、ファイルまたはアーカイブメンバ名を変 更します。パターンは、形式 /old/new/[ghHprRsS] で、ここで old は、基本的な正規表現、new は、マッチした部分の置き換え文字列で す、そしてオプションの後続する文字は、置き換えがどのように操作さ れるかを変更します。old がマッチしないなら、パターンは、スキップ されます。new 内の ~ は、マッチしたものに置き換えられ、\1 から \9 は、対応する捕獲されたグループの内容です。オプションの後続する g は、マッチがマッチされた部分の後の続くべきであることを指定し、最 初のマッチしないパターンで停止します。オプションの後続する s は、 パターンがシンボリックリンクの値に適用されることを指定します。オ プションの後続する p は、成功した置換の後に、オリジナルのパス名と 新しいパス名が標準エラーに印刷 (表示) されるべきであることを指定 します。オプションの後続する H、R または S 文字は、ハードリンクの ターゲット、通常のファイル名またはシンボリックリンクのターゲット のための置き換えを抑制します。オプションの後続する h、r または s 文字は、ハードリンクのターゲット、通常のファイル名またはシンボ リックリンクのターゲットのための置き換えを有効にします。デフォル トは、すべての名前の置き換えを適用する hrs です。特に、h、r また は s を指定することは決して必要ではありません。 --safe-writes (x モードのみ) 抽出ファイルは、不可分 (atomically) です。デフォル トで、tar は、抽出ファイル (それが存在するなら) と同じ名前でオリ ジナルファイルをアンリンクし、次に、同じ名前の直下にそれを作成 し、それに書き込みます。時間の短い期間のために、ファイルにアクセ スする試みるアプリケーションは、それを見つけることができず、また は、不完全な結果を見ます。--safe-writes が有効にされているなら、 tar は、最初、ユニークなテンポラリファイルを作成し、次に、テンポ ラリファイルに新しい内容を書き込み、最後に、テンポラリファイルを rename(2) を使用して不可分に最終的な名前に名前を変更します。これ は、ファイルにアクセスしているアプリケーションが、常に古い内容ま たは新しい内容を見ることを保証しています。 --same-owner (x モードのみ) 所有者とグループ ID を抽出します。これは、--no- same-owner と逆で、tar が root として実行されているなら、デフォル トの振る舞いです。 --strip-components count 先導されるパスの要素の指定された数を削除します。要素が少ないパス 名は、黙ってスキップされます。パス名は、含有/除外パターンのチェッ クの後でセキュリティチェックの前に編集されることに注意してくださ い。 -T filename, --files-from filename x または t モードで、tar は、filename から抽出される名前のリスト を読み込みます。c モードで、tar は、filename からアーカイブされる 名前を読み込みます。それ自体による行の特別な名前 ``-C'' によっ て、カレントディレクトリは、次の行で指定されたディレクトリに変更 されます。名前は、--null が指定されないなら、改行によって終了しま す。また、--null は、``-C'' を含んでいる行の特別な扱いを無効にす ることに注意してください。注: 利用者が find(1) を使用して、ファイ ルのリストを生成しているなら、同様に -n を、おそらく使用すること を必要とします。 --totals (c, r, u モードのみ) すべてのファイルを格納した後に、stderr に概 要を印刷 (表示) します。 -U, --unlink, --unlink-first (x モードのみ) ファイルを作成する前に、ファイルを削除します。これ は、ほとんどのファイルが既に存在しているなら、少しの動作で最適化 することができますが、ほとんどのファイルがまだ存在していないな ら、状況は、より遅くなるかもしれません。また、このフラグによっ て、tar は、エラーを報告する代わりに介在するシンボリックのディレ クトリを削除します。その他の詳細については、下記の「セキュリ ティ」セクションを参照してください。 --uid id 提供されたユーザ ID 番号を使用し、アーカイブからのユーザ名を無視 します。作成するときに、--uname がまだ指定されていないなら、ユー ザ名は、マッチするユーザ ID に設定されます。 --uname name 提供されたユーザ名を使用します。抽出のときに、これは、アーカイブ のユーザ名を上書きします。提供されたユーザ名がシステムの上に存在 していないなら、それは、無視され、(アーカイブまたは --uid オプ ションからの) ユーザ ID が、代わりに使用されます。作成するとき に、これは、アーカイブに格納されているユーザ名に設定します。名前 は、システムユーザデータベースに対して検証されません。 --use-compress-program program 組み込みの圧縮サポートを使用する代わりに program を通して (x また は t モードでの) 入力、または (c モードで) 出力をパイプで渡しま す。 -v, --verbose 冗長な出力を生成します。作成と抽出モードで、tar は、アーカイブか ら読み込むか、アーカイブに書き込むように各ファイル名をリストしま す。リストモードで、tar は、ls(1) のものと似た出力を生成します。 追加の -v オプションは、作成と抽出モードで、ls に似た詳細も提供し ています。 --version tar と libarchive のバージョンを印刷して、終了します。 -w, --confirmation, --interactive すべてのアクションに対して確認を問い合わせます。 -X filename, --exclude-from filename 指定されたファイルから除外パターンのリストを読み込みます。例外の 処理に関する詳細については、--exclude を参照してください。 --xattrs (c, r, u, x モードのみ) アーカイブまたは抽出された拡張ファイル属 性。これは、c、r、と u モードのデフォルトの振る舞いまたは tar が、root として x モードで実行しているなら、--no-xattrs の逆で す。 -y (c モードのみ) bzip2(1) で結果のアーカイブを圧縮します。抽出また はリストモードで、このオプションは、無視されます。この tar 実装 は、アーカイブを読み込むとき、自動的に bzip2 圧縮を認識しているこ とに注意してください。 -Z, --compress, --uncompress (c モードのみ) compress(1) で結果のアーカイブを圧縮します。抽出ま たはリストモードで、このオプションは、無視されます。この tar 実装 は、アーカイブを読み込むとき、自動的に compress 圧縮を認識してい ることに注意してください。 -z, --gunzip, --gzip (c モードのみ) gzip(1) で結果のアーカイブを圧縮します。抽出または リストモードで、このオプションは、無視されます。この tar 実装は、 アーカイブを読み込むとき、自動的に compression 圧縮を認識している ことに注意してください。 環境変数 次の環境変数は、tar の実行に影響します: TAR_READER_OPTIONS フォーマット (format) リーダと圧縮リーダのためにデフォルトオプ ション。--options オプションは、これを上書きします。 TAR_WRITER_OPTIONS フォーマット (format) ライタと圧縮ライタのためのデフォルトオプ ション。--options オプションは、これを上書きします。 LANG 使用するロケール。詳細については、environ(7) を参照してくださ い。 TAPE デフォルトのデバイス。-f オプションは、これを上書きします。そ の他の詳細については、上記の -f オプションの説明を参照してくだ さい。 TZ 日付を表示するとき、使用するタイムゾーン。詳細については、 environ(7) を参照してください。 終了ステータス ユーティリティ tar は、成功すると 0 で、エラーがあった場合は >0 で終了し ます。 使用例 2 つのファイル source.c と source.h を含む file.tar.gz と呼ばれる新しい アーカイブを作成します: tar -czf file.tar.gz source.c source.h このアーカイブの詳細な目次を見るためには: tar -tvf file.tar.gz デフォルトのテープドライブのアーカイブからすべてのエントリを抽出するため には: tar -x ISO9660 cdrom イメージの内容を調べるためには: tar -tf image.iso ファイルの階層構造を移動するためには、 tar -cf - -C srcdir . | tar -xpf - -C destdir として、またはより伝統的に cd srcdir ; tar -cf - . | (cd destdir ; tar -xpf -) として tar を呼び出します。 作成モードで、形式 -Cfoo/baz のディレクトリ変更の指示と形式 @archive-file のアーカイブ指示をアーカイブされるファイルとディレクトリのリストに含める ことができます。例えば、コマンド行 tar -c -f new.tar foo1 @old.tgz -C/tmp foo2 は、新しいアーカイブ new.tar を作成します。tar は、カレントディレクトリか らファイル foo1 を読み込み、それを出力アーカイブに追加します。次に、それ は、old.tgz から各エントリを読み込み、それらのエントリを出力アーカイブに 追加します。最後に、それは、/tmp ディレクトリに切り換えて、出力アーカイブ に foo2 追加します。 ディスク上の既存のデータと異なっている、任意の所有権、パーミッション、ま たは名前で出力アーカイブを作成するために mtree(5) 形式の入力ファイルを使 用することができます: $ cat input.mtree #mtree usr/bin uid=0 gid=0 mode=0755 type=dir usr/bin/ls uid=0 gid=0 mode=0755 type=file content=myls $ tar -cvf output.tar @input.mtree --newer と --newer-mtime スイッチは、``12 Mar 2005 7:14:29pm'', ``2005-03-12 19:14'', ``5 minutes ago'' と ``19:14 PST May 1'' を含んで、 さまざまな共通の日付と時間の指定を受け付けます。 アーカイブの様々な詳細を生成するか、または読み込みを制御するために --options 引数を使用することできます。例えば、利用者は、type, time と uid キーワードだけを含む mtree 出力を生成することができます: tar -cf file.tar --format=mtree --options='!all,type,time,uid' dir または、利用者は、gzip または xz 圧縮で使用される圧縮レベルを設定すること ができます: tar -czf file.tar --options='compression-level=9'. その他の詳細については、archive_read(3) と archive_write(3) で説明される archive_read_set_options() と archive_write_set_options() API 呼び出しの 説明を参照してください。 互換性 バンドルされた引数形式は、歴史的な実装との互換性のためにサポートされま す。それは、各文字がオプションを示す (先導する - 文字なしで) 頭文字から成 ります。引数は、個別の単語として続きます。引数の順序は、バンドルされたコ マンドの単語で、対応した文字の順序と一致していなければなりません。例え ば、 tar tbf 32 file.tar は、3 つのフラグ t, b, と f を指定しています。b と f フラグの両方は、引数 を必要とするので、コマンド行に 2 つの追加の項目がなければなりません。32 は、b フラグへの引数であり、file.tar は、f フラグへの引数です。 モードオプション c, r, t, u と x とオプション b, f, l, m, o, v と w は、 SUSv2 に適合します。 最大の移植性のために、tar を呼び出すスクリプトは、上記のバンドルされた引 数を使用するべきで、それら自体を c, t と x モードと b, f, m, v と w オプ ションに制限するべきです。 追加のロングオプションは、他の tar 実装との互換性を強化するために提供され ています。 セキュリティ 特定のセキュリティ問題は、tar を含む多くのアーカイブプログラムのために共 通です。特に、慎重に作られたアーカイブは、tar の抽出されたファイルをター ゲットのディレクトリの外側に位置付けることを要求することができます。これ は、気が付かないユーザが、それらが上書きするつもりではなかったファイルに 上書きするために潜在的に使用することができます。アーカイブがスーパユーザ によって抽出されているなら、システムのあらゆるファイルは、潜在的に上書き することができます。これが起こるかもしれない 3 つの方法があります。tar は、それぞれのものに対して保護するためのメカニズムがありますが、精通した ユーザは、意味に気付いているべきです: • アーカイブのエントリは、絶対パス名を持つことができます。デフォル トで、tar は、この問題を避けるためにそれらを復元する前に、先導す る / 文字をファイル名から削除します。 • アーカイブのエントリは、.. 構成要素を含むパス名を持つことができま す。デフォルトで、tar は、それらのパス名に .. 構成要素を含んでい るファイルを抽出しません。 • アーカイブのエントリは、ファイルを他のディレクトリに復元するため に、シンボリックリンクを利用することができます。アーカイブは、別 のディレクトリにシンボリックリンクは復旧することができ、次にファ イルをそのディレクトリに復元するために、そのリンクを使用します。 これを避けるために、tar は、シンボリックリンクのためにそれぞれ抽 出されたパスをチェックします。最後のパス要素がシンボリックリンク であるなら、それは、削除され、アーカイブのエントリで置き換えられ ます。-U が指定されるなら、あらゆる中間的なシンボリックリンクもま た、無条件に削除されます。-U も -P も指定されないなら、tar は、エ ントリを抽出することを拒否します。 利用者自身を保護するためには、利用者は、信頼されていないソースから来るあ らゆるアーカイブに注意するべきです。利用者は、抽出する前に tar -tf filename でアーカイブの内容を調査するべきです。利用者は、tar が、あらゆる既存の ファイル、またはあらゆる前から存在するファイルを削除するために -U オプ ションで上書きしないことを保証するために -k オプションを使用するべきで す。利用者は、一般的に、スーパユーザの特権で実行している間に、アーカイブ を抽出するべきではありません。tar への -P オプションは、上記のセキュリ ティチェックを無効にし、利用者は、あらゆる絶対のパス名、.. 構成要素、また は他のディレクトリへのシンボリックリンクを保存している間にアーカイブを抽 出することがでることに注意してください。 関連項目 bzip2(1), compress(1), cpio(1), gzip(1), mt(1), pax(1), shar(1), xz(1), libarchive(3), libarchive-formats(5), tar(5) 規格 tar コマンドのための現在の POSIX 標準はありません。それは、ISO/IEC 9945-1:1996 (``POSIX.1'') に現れましたが、IEEE Std 1003.1-2001 (``POSIX.1'') で落とされました。この実装によってサポートされたオプション は、tar のための古い POSIX 仕様と同様に多くの既存の tar 実装と pax のため の現在の POSIX 仕様を調査することによって開発されました。 ustar と pax 交換ファイル形式は、pax コマンドのための IEEE Std 1003.1-2001 (``POSIX.1'') によって定義されています。 歴史 tar コマンドは、1979 年 1 月にリリースされた Seventh Edition Unix で登場 しました。多数の他の実装があり、その多くは、ファイル形式を拡張したもので す。John Gilmore の pdtar パブリックドメイン実装 (1987 年 11 月頃) は、と ても影響力が大きく、GNU tar の基礎を形成しました。GNU tar は、FreeBSD 1.0 で始まる FreeBSD の標準のシステム tar として含まていました。 これは、libarchive(3) ライブラリをベースにした、完全な再実装です。それ は、2005 年 5 月に FreeBSD 5.4 ではじめてリリースされました。 バグ このプログラムは、-l オプションの定義で ISO/IEC 9945-1:1996 (``POSIX.1'') に従います。バージョン 1.15 より前の GNU tar は、--one-file-system オプ ションの同義語として -l を扱ったことに注意してください。 -C dir オプションは、歴史的な実装と異なっています。 すべてのアーカイブ出力は、たとえ出力が圧縮されていても、正しいサイズのブ ロックで書き込まれます。最後の出力ブロックが全体のブロックサイズにパディ ングされるかどうかは、形式と出力デバイスによって変化します。tar と cpio の形式について、出力が、標準出力またはテープドライブのようなキャラクタデ バイスまたはブロックデバイスに書き込まれているなら、出力の最後のブロック は、全体のブロックサイズにパディングされます。出力が通常のファイルに書き 込まれているなら、最後のブロックは、パディングされません。gzip(1) と bzip2(1) を含んで、多くの圧縮プログラムは、tar によって作成されたアーカイ ブを圧縮復元するとき、ヌル文字のパディングについてエラーを出しますが、そ れらは、まだ、それを正しく抽出します。 圧縮と圧縮復元は、内部で実装されるので、 tar -czf - file によって生成された圧縮された出力と tar -cf - file | gzip によって生成されたものの間にわずかな違いがあります。 デフォルトは、アーカイブを読み込み、標準の I/O パスにアーカイブを書き込む ことですが、そうでなければ、伝統的に (そして POSIX で) 指示されます。 r と u モードは、アーカイブが圧縮解除されて、ディスクの通常のファイルに位 置付けられることを必要とします。他のアーカイブは、@archive-file 拡張で c モードを使用して修正することができます。 @foo または -foo と呼ばれるファイルをアーカイブするために、利用者は、それ ぞれ、./@foo または ./-foo としてそれを指定しなければなりません。 作成モードで、先導する ./ は、常に削除されます。先導する / は、-P オプ ションが指定されないなら、取り除かれます。 作成と抽出の両方でファイル選択のためのよりよいサポートが必要です。 マルチボリュームアーカイブのためのあらゆるサポートは、まだありません。 (tar と cpio のような) 似ていないアーカイブ形式の間で、@- 変換を使用して 変換することは、ハードリンク情報が失われる原因となるかもしれません。(これ は、異なったアーカイブ形式がハードリンク情報を格納する互換性がない方法の 結果です。) FreeBSD 11.4 January 31, 2020 FreeBSD 11.4