730eb3d2f8
Submitted by: Sarumaru Yoshihiko <mistral at imasy or jp>
668 lines
19 KiB
Groff
668 lines
19 KiB
Groff
.\" Copyright (c) 2003 Tim Kientzle
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" %FreeBSD: src/usr.bin/tar/bsdtar.1,v 1.20.2.2 2005/02/25 05:14:42 kientzle Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd April 13, 2004
|
|
.Dt BSDTAR 1
|
|
.Os
|
|
.Sh 名称
|
|
.Nm tar
|
|
.Nd テープアーカイブを操作する
|
|
.Sh 書式
|
|
.Nm
|
|
.Op Ar bundled-flags Ao args Ac
|
|
.Op Ao Ar file Ac | Ao Ar pattern Ac ...
|
|
.Nm
|
|
.Brq Fl c
|
|
.Op Ar options
|
|
.Op Ar files | directories
|
|
.Nm
|
|
.Brq Fl r | Fl u
|
|
.Fl f Ar archive-file
|
|
.Op Ar options
|
|
.Op Ar files | directories
|
|
.Nm
|
|
.Brq Fl t | Fl x
|
|
.Op Ar options
|
|
.Op Ar patterns
|
|
.Sh 解説
|
|
.Nm
|
|
はアーカイブファイルストリームの作成と操作をします。
|
|
.Pp
|
|
最初の書式フォームでは
|
|
.Dq まとめ
|
|
(bundled)
|
|
オプション形式を表しています。
|
|
この使用法は、これまでの実装との互換性のために提供されています。
|
|
詳細は後述の「互換性」を参照してください。
|
|
.Pp
|
|
その他の書式フォームが、好ましい使用法を表しています。
|
|
.Nm
|
|
への最初のオプションは、次の一覧にあるモードの指示です:
|
|
.Bl -tag -compact -width indent
|
|
.It Fl c
|
|
指定されたアイテムを含んだ、新しいアーカイブを作成します。
|
|
.It Fl r
|
|
.Fl c
|
|
と似ていますが、新しいエントリはアーカイブに追加されます。
|
|
なおこれは通常ファイルに保存された非圧縮アーカイブに対してのみ
|
|
動作することに注意してください。
|
|
.Fl f
|
|
オプションが必要です。
|
|
.It Fl t
|
|
標準出力にアーカイブ内容のリストを出力します。
|
|
.It Fl u
|
|
.Fl r
|
|
と似ていますが、新しいエントリの変更時刻が、アーカイブ内の対応するエントリ
|
|
のものよりも新しい場合のみ、追加されます。
|
|
なおこれは通常ファイルに保存された非圧縮アーカイブに対してのみ
|
|
動作することに注意してください。
|
|
.Fl f
|
|
オプションが必要です。
|
|
.It Fl x
|
|
アーカイブからディスクに展開します。
|
|
もし同名のファイルがアーカイブ内に複数回現れた場合、それぞれのコピーが
|
|
展開され、後のものがそれ以前のコピーを上書き (置換) します。
|
|
.El
|
|
.Pp
|
|
.Fl c ,
|
|
.Fl r ,
|
|
.Fl u
|
|
モードにおいて、指定されたファイルまたはディレクトリは、コマンドラインで
|
|
指定された順にアーカイブに追加されます。
|
|
デフォルトでは、各ディレクトリ内のファイルもアーカイブされます。
|
|
.Pp
|
|
展開またはリストモードでは、アーカイブをオープンする前に
|
|
コマンドライン全体が読み込まれ、解析されます。
|
|
コマンドラインのパス名またはパターンは、アーカイブ内の処理対象となる
|
|
アイテムを示します。
|
|
パターンはシェル形式のグロブパターンであり、XXXX に文書化されています。
|
|
.Sh オプション
|
|
明記していないオプションは、全ての操作モードに適用可能です。
|
|
.Bl -tag -width indent
|
|
.It Cm @ Ns Pa archive
|
|
(c および r モードのみ)
|
|
指定されたアーカイブがオープンされ、そのエントリが現在の
|
|
アーカイブに追加されます。
|
|
簡単な例として、
|
|
.Dl Nm Fl c Fl f Pa - Pa newfile Cm @ Ns Pa original.tar
|
|
ではファイル
|
|
.Pa newfile
|
|
と、
|
|
.Pa original.tar
|
|
の全てのエントリを含む、新しいアーカイブを標準出力に書き出します。
|
|
対照的に、
|
|
.Dl Nm Fl c Fl f Pa - Pa newfile Pa original.tar
|
|
では、二つのエントリのみの新しいアーカイブを作成します。
|
|
また、
|
|
.Dl Nm Fl czf Pa - Fl -format Cm pax Cm @ Ns Pa -
|
|
では標準入力からアーカイブを読み込み (フォーマットは自動的に判別)、
|
|
gzip で圧縮した pax フォーマットアーカイブに変換して、標準出力に出力します。
|
|
このように、
|
|
.Nm
|
|
はアーカイブのフォーマットを別のものに変換するために使用できます。
|
|
.It Fl b Ar blocksize
|
|
テープドライブの I/O に対するブロックサイズを、512 バイトレコード単位で
|
|
指定します。
|
|
一般に、本引数はテープドライブに読み書きする場合にのみ必要であり、
|
|
たとえその場合であってもデフォルトのブロックサイズである
|
|
20 レコード (10240 バイト) はとても普遍的な値であるので、
|
|
通常必要ありません。
|
|
.It Fl C Ar directory
|
|
c および r モードにおいては、続くファイルを追加する前に、ディレクトリを
|
|
変更します。
|
|
x モードにおいては、アーカイブをオープンした後、エントリをアーカイブから
|
|
展開する前にディレクトリを変更します。
|
|
.It Fl -check-links ( Fl W Cm check-links )
|
|
(c および r モードのみ)
|
|
各ファイルへのすべてのリンクがアーカイブされないなら、
|
|
警告メッセージを発行します。
|
|
.It Fl -exclude Ar pattern ( Fl W Cm exclude Ns = Ns Ar pattern )
|
|
指定したパターンにマッチするファイルやディレクトリを、処理しません。
|
|
なおこれはコマンドラインで指定したパターンやファイル名よりも
|
|
優先することに注意してください。
|
|
.It Fl -format Ar format ( Fl W Cm format Ns = Ns Ar format )
|
|
(c モードのみ)
|
|
作成するアーカイブのフォーマットを指定するのに用います。
|
|
サポートされるフォーマットには、
|
|
.Dq cpio ,
|
|
.Dq pax ,
|
|
.Dq shar ,
|
|
.Dq ustar
|
|
があります。
|
|
また他のフォーマットもサポートされているかもしれません。
|
|
現在サポートされているフォーマットの詳細な情報については、
|
|
.Xr libarchive-formats 5
|
|
を参照してください。
|
|
.It Fl f Ar file
|
|
指定されたファイルに対してアーカイブを読んだり書いたりします。
|
|
ファイル名を
|
|
.Pa -
|
|
にすれば、標準入力または標準出力になります。
|
|
指定しない場合、デフォルトのテープデバイスが使用されます
|
|
(FreeBSD の場合、デフォルトのテープデバイスは
|
|
.Pa /dev/sa0 )
|
|
。
|
|
.It Fl -fast-read ( Fl W Cm fast-read )
|
|
(x および t モードのみ)
|
|
各パターンまたはファイル名オペランドにマッチするエントリのうち、
|
|
最初のアーカイブエントリだけを展開またはリスト表示します。
|
|
各パターンまたはファイル名にマッチすれば、すぐに終了します。
|
|
同名のエントリが複数存在でき、また慣習として後のエントリがそれ以前のエントリを
|
|
上書きするため、デフォルトではアーカイブは常に最後まで読み込まれます。
|
|
本オプションは性能の最適化のために提供されています。
|
|
.It Fl H
|
|
(c および r モードのみ)
|
|
コマンドラインで指定されたシンボリックリンクを追跡します。
|
|
リンク自身ではなく、リンクの対象をアーカイブします。
|
|
.It Fl h
|
|
(c および r モードのみ)
|
|
.Fl L
|
|
と同じ意味です。
|
|
.It Fl -include Ar pattern ( Fl W Cm include Ns = Ns Ar pattern )
|
|
指定したパターンにマッチしたファイルまたはディレクトリのみ処理します。
|
|
なおこの指定よりも、
|
|
.Fl -exclude
|
|
による除外指定が優先することに注意してください。
|
|
これを明示しなければ、デフォルトでは全てのエントリが処理されます。
|
|
この
|
|
.Fl -include
|
|
オプションは、アーカイブをフィルタリングするのに特に有用です。
|
|
例として、次のコマンド
|
|
.Dl Nm Fl c Fl f Pa new.tar Fl -include='*foo*' Cm @ Ns Pa old.tgz
|
|
では、
|
|
.Pa old.tgz
|
|
のエントリのうち、文字列
|
|
.Sq foo
|
|
を含んでいるものだけを含む、新しいアーカイブ
|
|
.Pa new.tar
|
|
を作成します。
|
|
.It Fl j
|
|
(c モードのみ)
|
|
作成するアーカイブを
|
|
.Xr bzip2 1
|
|
で圧縮します。
|
|
展開またはリストモードでは、本オプションは無視されます。
|
|
なお他の
|
|
.Nm tar
|
|
実装と異なり、本実装ではアーカイブを読み込む際には、bzip2 圧縮を
|
|
自動的に判別することに注意してください。
|
|
.It Fl k
|
|
(x モードのみ)
|
|
既存のファイルを上書きしません。
|
|
特に、アーカイブ内にあるファイルが複数回現れても、後のコピーが
|
|
それ以前のコピーを上書きすることはしません。
|
|
.It Fl L
|
|
(c および r モードのみ)
|
|
全てのシンボリックリンクを追跡します。
|
|
通常、シンボリックリンクはそのままアーカイブされます。
|
|
本オプションにより、リンクの対象が代わりにアーカイブされます。
|
|
.It Fl l
|
|
.Ev POSIXLY_CORRECT
|
|
が環境で指定されるなら、これは
|
|
.Fl -check-links
|
|
オプションのための同義語です。
|
|
さもなければ、エラーが表示されます。
|
|
GNU tar と互換性のある振舞いを希望するユーザは代わりに
|
|
.Fl -one-file-system
|
|
オプションを使用するべきです。
|
|
.It Fl m
|
|
(x モードのみ)
|
|
ファイル更新時刻を展開しません。
|
|
デフォルトでは、更新時刻はアーカイブに納められている時刻に設定されます。
|
|
.It Fl n
|
|
(c, r, u モードのみ)
|
|
ディレクトリ内のファイルを再帰的にアーカイブしません。
|
|
.It Fl -nodump ( Fl W Cm nodump )
|
|
(c および r モードのみ)
|
|
nodump ファイルフラグを尊重して、このファイルをスキップします。
|
|
.It Fl O
|
|
(x, t モードのみ)
|
|
展開 (-x) モードでは、ファイルはディスクに展開されずに標準出力に
|
|
書き込まれます。
|
|
リスト (-t) モードでは、ファイルリストは通常の標準出力でなく標準エラーに
|
|
書き込まれます。
|
|
.It Fl o
|
|
(x モードのみ)
|
|
ユーザとグループを、アーカイブ中で指定されたものではなく、
|
|
本プログラムを実行しているユーザのものを使用します。
|
|
なおこれは
|
|
.Fl p
|
|
を指定し、かつ本プログラムを root ユーザが実行していなければ
|
|
意味がないことに注意してください。
|
|
この場合、ファイルモードとフラグはアーカイブからリストアされますが、
|
|
アーカイブ中の ACL や所有者の情報は破棄されます。
|
|
.It Fl P
|
|
パス名を保持します。
|
|
デフォルトでは、アーカイブの作成と展開の両方において、絶対パス名 (/ 文字で
|
|
始まっているもの) の最初のスラッシュは取り除かれます。
|
|
また
|
|
.Nm
|
|
は、パス名に
|
|
.Pa ..
|
|
を含んでいたり、対象ディレクトリをシンボリックリンクで変更したりする
|
|
アーカイブエントリの展開を拒否します。
|
|
本オプションはこれらの振舞いを抑制します。
|
|
.It Fl p
|
|
(x モードのみ)
|
|
ファイルパーミッションを保持します。
|
|
アーカイブから各アイテムを展開する際、もしあれば、所有者、ファイルモード、
|
|
ファイルのフラグと ACL を含む、全てのパーミッションをリストアしようとします。
|
|
デフォルトでは、新規作成するファイルの所有者は
|
|
.Nm
|
|
を実行するユーザとなり、新規作成する通常ファイルに関してはファイルモードが
|
|
リストアされ、これら以外のタイプのエントリはデフォルトのパーミッションに
|
|
なります。
|
|
もし
|
|
.Nm
|
|
を root が実行した場合、
|
|
.Fl o
|
|
オプションを指定しない限り、デフォルトで所有者がリストアされます。
|
|
.It Fl T Ar filename
|
|
(c モードのみ)
|
|
アーカイブすべきファイル名を
|
|
.Pa filename
|
|
から読み込みます。
|
|
ファイル名は改行で区切られます。
|
|
特別な名前である
|
|
.Dq -C
|
|
により、カレントディレクトリをその次の行で指定されたディレクトリに変更します。
|
|
.It Fl U
|
|
(x モードのみ)
|
|
ファイルを作成する前に、いったん削除します。
|
|
本オプションなしでは、
|
|
.Nm
|
|
は既存のファイルを上書きし、既存のハードリンクを保持します。
|
|
本オプションにより、既存のハードリンクは破棄され、同様に、
|
|
展開されるファイルの場所に影響を及ぼすシンボリックリンクも破棄されます。
|
|
.It Fl v
|
|
冗長な出力を表示します。
|
|
作成及び展開モードにおいて、
|
|
.Nm
|
|
はアーカイブに書き込み、またはアーカイブから読み出した各ファイルの名前を
|
|
そのまま
|
|
リスト表示します。
|
|
リストモードにおいて、
|
|
.Nm
|
|
は
|
|
.Xr ls 1
|
|
に似た出力を表示します。
|
|
.Fl v
|
|
オプションを追加することで、より詳細に表示します。
|
|
.It Fl W Ar longopt=value
|
|
ロングオプション
|
|
.Pf ( Fl -
|
|
が先頭につく)
|
|
は、
|
|
.Xr getopt_long 3
|
|
関数が用意されているシステムでのみ、直接サポートされます。
|
|
この関数をサポートしないシステムでは、本
|
|
.Fl W
|
|
オプションを介して、ロングオプションを使用できます。
|
|
.It Fl w
|
|
あらゆる操作に対し、確認を求めます。
|
|
.It Fl X Ar filename
|
|
指定されたファイルから除外パターンのリストを読み込みます。
|
|
除外の取り扱いに関する情報については
|
|
.Fl -exclude
|
|
を参照してください。
|
|
.It Fl y
|
|
(c モードのみ)
|
|
作成するアーカイブを
|
|
.Xr bzip2 1
|
|
で圧縮します。
|
|
展開またはリストモードでは、本オプションは無視されます。
|
|
なお他の
|
|
.Nm tar
|
|
実装と異なり、本実装ではアーカイブを読み込む際には、bzip2 圧縮を
|
|
自動的に判別することに注意してください。
|
|
.It Fl z
|
|
(c モードのみ)
|
|
作成するアーカイブを
|
|
.Xr gzip 1
|
|
で圧縮します。
|
|
展開またはリストモードでは、本オプションは無視されます。
|
|
なお他の
|
|
.Nm tar
|
|
実装と異なり、本実装ではアーカイブを読み込む際には、gzip 圧縮を
|
|
自動的に判別することに注意してください。
|
|
.El
|
|
.Sh 環境変数
|
|
次の環境変数が、
|
|
.Nm
|
|
の実行に関係します:
|
|
.Bl -tag -width ".Ev BLOCKSIZE"
|
|
.It Ev LANG
|
|
使用するロケール。
|
|
詳細は
|
|
.Xr environ 7
|
|
を参照してください。
|
|
.It Ev POSIXLY_CORRECT
|
|
この環境変数が定義されると、
|
|
.Fl l
|
|
オプションは
|
|
.St -p1003.1-96
|
|
に従って解釈されます。
|
|
.It Ev TAPE
|
|
デフォルトテープデバイス。
|
|
.Fl f
|
|
オプションはこれを上書きします。
|
|
.It Ev TZ
|
|
日付を表示する際に使用するタイムゾーン。
|
|
詳細は
|
|
.Xr environ 7
|
|
を参照してください。
|
|
.El
|
|
.Sh 関連ファイル
|
|
.Bl -tag -width ".Ev BLOCKSIZE"
|
|
.It Pa /dev/sa0
|
|
.Ev TAPE
|
|
環境変数か
|
|
.Fl f
|
|
オプションで上書きされない限り、
|
|
デフォルトのテープデバイスです。
|
|
.El
|
|
.Sh 終了ステータス
|
|
.Ex -std
|
|
.Sh 使用例
|
|
二つのファイル
|
|
.Ar source.c
|
|
と
|
|
.Ar source.h
|
|
を含む新しいアーカイブ
|
|
.Ar file.tar
|
|
を作成します:
|
|
.Dl Nm Fl czf Pa file.tar Pa source.c Pa source.h
|
|
.Pp
|
|
アーカイブの詳細な内容一覧を表示します:
|
|
.Dl Nm Fl tvf Pa file.tar
|
|
.Pp
|
|
デフォルトのテープドライブにあるアーカイブの、全てのエントリを展開します:
|
|
.Dl Nm Fl x
|
|
.Pp
|
|
作成モードにおいて、アーカイブされるファイルとディレクトリのリストには、
|
|
.Cm -C Ns Pa foo/baz
|
|
の形式でディレクトリの変更命令を取り込めます。
|
|
また
|
|
.Cm @ Ns Pa archive-file
|
|
の形式でアーカイブのエントリを取り込むこともできます。
|
|
例えば、次のコマンドライン
|
|
.Dl Nm Fl c Fl f Pa new.tar Pa foo1 Cm @ Ns Pa old.tgz Cm -C Ns Pa /tmp Pa foo2
|
|
では、新しいアーカイブ
|
|
.Pa new.tar
|
|
を作成します。
|
|
.Nm
|
|
はカレントディレクトリからファイル
|
|
.Pa foo1
|
|
を読み込み、出力するアーカイブに追加します。
|
|
次に
|
|
.Pa old.tgz
|
|
の各エントリを読み込み、これらのエントリを、出力するアーカイブに追加します。
|
|
最後にディレクトリを
|
|
.Pa /tmp
|
|
に変更し、
|
|
.Pa foo2
|
|
を出力するアーカイブに追加します。
|
|
.Sh 互換性
|
|
まとめオプション形式は、これまでの実装との互換性のためにサポートされています。
|
|
これには、各文字がオプションである頭文字 (- 文字で始まらない)
|
|
が存在します。
|
|
引数は別々の単語として続きます。
|
|
この引数の順序はまとめオプション文字内の、対応する文字の順序と一致している
|
|
必要があります。
|
|
例えば
|
|
.Dl Nm Cm tbf 32 Pa file.tar
|
|
では、三つのフラグ
|
|
.Cm t ,
|
|
.Cm b ,
|
|
および
|
|
.Cm f
|
|
を指定しています。
|
|
.Cm b
|
|
と
|
|
.Cm f
|
|
フラグは、共に引数が必要ですので、二つの追加アイテムがコマンドラインに
|
|
必要です。
|
|
.Ar 32
|
|
は
|
|
.Cm b
|
|
フラグに対する引数であり、また
|
|
.Ar file.tar
|
|
は
|
|
.Cm f
|
|
フラグに対する引数です。
|
|
.Pp
|
|
モードオプションの c, r, t, u, x、およびオプションの
|
|
b, f, l, m, o, v, w は、SUSv2 に適合しています。
|
|
.Pp
|
|
移植性を最大限にするために、
|
|
.Nm tar
|
|
を実行するスクリプトは、上記のまとめオプション形式を使うべきであり、
|
|
モードオプションは
|
|
.Cm c ,
|
|
.Cm t ,
|
|
.Cm x
|
|
に、またオプションは
|
|
.Cm b ,
|
|
.Cm f ,
|
|
.Cm m ,
|
|
.Cm v ,
|
|
.Cm w
|
|
に限定するべきです。
|
|
.Pp
|
|
getopt_long() をサポートするシステムでは、他の tar 実装との互換性を
|
|
増すために、ロングオプションが使用できます。
|
|
.Sh セキュリティ
|
|
確実なセキュリティは、
|
|
.Nm
|
|
を含む沢山のアーカイブプログラムに共通の課題です。
|
|
特に、注意深く細工されたアーカイブは
|
|
.Nm
|
|
に対して、対象とするディレクトリ以外の場所にファイルを展開するように
|
|
要求できます。
|
|
これは不注意なユーザに対し、上書きするつもりのないファイルを
|
|
上書きさせられる可能性があります。
|
|
アーカイブをスーパユーザが展開している場合は、システム上の
|
|
あらゆるファイルが上書きさせられる可能性があります。
|
|
これを引き起こす、三つの手段があります。
|
|
.Nm
|
|
はそれぞれに対する防御機構を備えていますが、情報通のユーザならば、
|
|
それらの意味するところを知っておくべきでしょう:
|
|
.Bl -bullet -width indent
|
|
.It
|
|
アーカイブのエントリは、絶対パス名を持つことができます。
|
|
デフォルトでは、
|
|
.Nm
|
|
はこの問題に対する防御策として、これらをリストアする前にファイル名の先頭にある
|
|
.Pa /
|
|
文字を取り除きます。
|
|
.It
|
|
アーカイブのエントリは、
|
|
.Pa ..
|
|
を含むパス名を持てます。
|
|
デフォルトでは、
|
|
.Nm
|
|
はパス名に
|
|
.Pa ..
|
|
を含んでいるファイルを展開しません。
|
|
.It
|
|
アーカイブのエントリでは、ファイルを別のディレクトリにリストアするように、
|
|
シンボリックリンクを悪用できます。
|
|
アーカイブは別のディレクトリを指すシンボリックリンクをリストアすることができ、
|
|
このリンクを使ってファイルをそのディレクトリにリストアします。
|
|
これを防ぐため、
|
|
.Nm
|
|
では毎回、展開されるパスにシンボリックリンクが
|
|
含まれるかどうかを調べます。
|
|
もしパスの最後の要素が
|
|
シンボリックリンクであれば、そのシンボリックリンクは削除され、
|
|
アーカイブの内容に置き換えられます。
|
|
.Fl U
|
|
が指定されていれば、展開されるパスの中間に存在する
|
|
シンボリックリンクも、すべて無条件に削除されます。
|
|
もし
|
|
.Fl U
|
|
も
|
|
.Fl P
|
|
も指定しなければ、
|
|
.Nm
|
|
はこのようなエントリを展開するのを拒否します。
|
|
.El
|
|
あなた自身を守るため、信用できない出処からのアーカイブには気をつけるべきです。
|
|
アーカイブを展開する前に、
|
|
.Dl Nm Fl tf Pa filename
|
|
としてアーカイブの内容を調べるべきです。
|
|
.Nm
|
|
に
|
|
.Fl k
|
|
オプションをつけて既存のファイルを上書きしないことを保証させるか、
|
|
.Fl U
|
|
オプションをつけて既存のファイルを削除させるべきです。
|
|
一般に、スーパユーザ権限にある時は、アーカイブを展開するべきではありません。
|
|
なお
|
|
.Fl P
|
|
オプションにより、
|
|
.Nm
|
|
は上に述べたセキュリティチェックを行わないようになり、絶対パスや
|
|
.Pa ..
|
|
を含むファイル、及び他のディレクトリへのシンボリックリンクを
|
|
展開できるようになることに注意してください。
|
|
.Sh 関連項目
|
|
.Xr bzip2 1 ,
|
|
.Xr cpio 1 ,
|
|
.Xr gzip 1 ,
|
|
.Xr mt 1 ,
|
|
.Xr pax 1 ,
|
|
.Xr shar 1 ,
|
|
.Xr libarchive 3 ,
|
|
.Xr libarchive-formats 5 ,
|
|
.Xr tar 5
|
|
.Sh 規格
|
|
現在、tar コマンドに対する POSIX 標準はありません。
|
|
.St -p1003.1-96
|
|
にはありましたが、
|
|
.St -p1003.1-2001
|
|
ではなくなりました。
|
|
本実装で使用できるオプションは、現存するいくつかの tar 実装と同様、
|
|
tar の古い POSIX 仕様、pax の現在の POSIX 仕様を調査して
|
|
開発されました。
|
|
.Pp
|
|
ustar と pax 間のファイルフォーマット変換については、pax コマンドの
|
|
.St -p1003.1-2001
|
|
にて定義されています。
|
|
.Sh 歴史
|
|
.Nm tar
|
|
コマンドは Seventh Edition Unix で登場しました。
|
|
他に多数の実装があり、その多くはファイルフォーマットを拡張しています。
|
|
John Gilmore によるパブリックドメイン実装の
|
|
.Nm pdtar
|
|
(1987 年 11 月頃) は多大な影響を及ぼし、GNU tar の元になりました。
|
|
FreeBSD が 1.0 より始まった時に、GNU tar は FreeBSD 基本システムの tar として
|
|
取り込まれました。
|
|
.Pp
|
|
本ソフトウェアは
|
|
.Xr libarchive 3
|
|
ライブラリをベースにした、完全な再実装です。
|
|
.Sh バグ
|
|
POSIX と GNU は
|
|
.Fl l
|
|
オプションの意味について強く意見を異にしています。
|
|
一方の振舞いを期待して他方の結果を得るといった災害の可能性があるため、
|
|
この実装では、
|
|
.Fl l
|
|
オプションは故意に壊してあります。
|
|
.\" because of = ~のために、~のせいで
|
|
.Pp
|
|
.Fl C Pa dir
|
|
オプションは、歴史的な実装とは異なっているでしょう。
|
|
.Pp
|
|
全てのアーカイブ出力は、出力を圧縮していても、正しいサイズのブロックで
|
|
書き出されます。
|
|
最後の出力ブロックがブロックサイズの大きさにパディングされるかどうかは、
|
|
フォーマットと出力デバイスによって変わります。
|
|
tar と cpio フォーマットにおいて、出力が標準出力、キャラクタ型デバイス、
|
|
もしくはテープドライブのようなブロック型デバイスの場合、
|
|
出力の最後のブロックはブロックサイズの大きさにパディングされます。
|
|
出力を通常ファイルに書き込む場合、最後のブロックはパディングされません。
|
|
.Xr gzip 1
|
|
や
|
|
.Xr bzip2 1
|
|
を含む多数の圧縮ソフトウェアは、
|
|
.Nm
|
|
で作成されたアーカイブを復元する時、このヌルパディングについて文句を言いますが
|
|
展開は正常に行えます。
|
|
.Pp
|
|
圧縮と復元機能は内部で実装されているので、
|
|
.Dl Nm Fl czf Pa - file
|
|
により作成した圧縮出力と、
|
|
.Dl Nm Fl cf Pa - file | Nm gzip
|
|
により作成した圧縮出力には、些細な違いがあるかもしれません。
|
|
.Pp
|
|
デフォルトでは標準の I/O パスでアーカイブを読み書きするべきですが、
|
|
伝統的に (および POSIX では) 他のものを規定しています。
|
|
.Pp
|
|
.Cm r
|
|
および
|
|
.Cm u
|
|
モードでは、アーカイブは非圧縮でディスク上に通常ファイルとして存在する
|
|
必要があります。
|
|
そうではないアーカイブは
|
|
.Cm c
|
|
モードと
|
|
.Pa @archive-file
|
|
拡張を用いて更新できます。
|
|
.Pp
|
|
.Pa @foo
|
|
や
|
|
.Pa -foo
|
|
といった名前のファイルをアーカイブするには、それぞれ
|
|
.Pa ./@foo
|
|
や
|
|
.Pa ./-foo
|
|
という形式で指定する必要があります。
|
|
.Pp
|
|
作成モードにおいて、先頭にある
|
|
.Pa ./
|
|
は常に削除されます。
|
|
先頭にある
|
|
.Pa /
|
|
は、
|
|
.Fl P
|
|
オプションが指定されない限り、取り除かれます。
|
|
.Pp
|
|
作成及び展開における、ファイル選択のよりよいサポートが必要です。
|
|
.Pp
|
|
マルチボリュームアーカイブ、および疎なファイルに対するサポートはまだありません。
|
|
.Pp
|
|
似ていないアーカイブフォーマット間 (tar と cpio など) で
|
|
.Cm @ Ns Pa -
|
|
により変換すると、ハードリンク情報が失われます
|
|
(これは異なるアーカイブフォーマットでハードリンク情報を
|
|
互換性のない形で格納していることからくる
|
|
当然の結果です)。
|
|
.Pp
|
|
故意にドキュメント化していない、多くのショートオプションの代わりになる
|
|
ロングオプションがあります。
|