tar は tape archiver の略で、UN*Xで標準的に使われるアーカ
イバです。tapeと付いていますが、tapeにしか使えないわけではあ
りません :)
基本的には、圧縮の無い LHA みたいなものと思ってください。
圧縮一応できますが、あくまでも補助的な機能と思ってください。
そう、圧縮機能はサブプロセスとしてgzipとか compress という
圧縮専用プログラムを起動する事によって実現しています。
GNU tar では、標準的な tar に加えて、上記の圧縮のためのオ プション、マルチボリュームなどの便利な機能が追加されています。
GTAR251.ZIPというものが最新版の様です。拡張属性も保存でき るようになっているようです。バージョンとしては、
GNU tar version 1.10 - AK 2.51となります。
このアーカイブを展開するとおおよそ次のようなファイル構成に なっています。
+--TAR\
| +--tar.exe // GNU tar実行ファイル
| +--tar.INF // GNU tar標準機能のオンライン文書
| +--gtar.INF // OS/2版拡張機能のオンライン文書
| +--gtar.ps // PostScript版ドキュメント
| +--LIB\ // ライブラ(utils.a)リソース
| +--SRC\ // TAR本体のソース
+--readme // 最初に読んでね(^_-)
+--compress-2.zip // 圧縮プログラム
+--gz124-32.zip // GNU圧縮プログラム
次の二つを設定してください。
SET TAR_COMPRESS=gzip
とするとよいでしょう。OS/2版独自仕様です
前記環境変数を設定したら、実行ファイルをPATHの通ったディレ
クトリへコピーしてください。
コピーするものは、
OS/2標準のドキュメントであるオンライン文書形式(.INF)のドキュ メントが用意されています。
まず圧縮しないでただアーカイブするだけの使い方を説明します。
オプションの大文字小文字は間違わないように(^^)
まずは、アーカイブを作ってみましょう。作成するアーカイブの
名前は foo.tar です。
例1)非圧縮、アーカイブ新規作成いろいろ [C:\foo]tar cvf a:foo.tar * ←カレントディレクトリ配下全ての場合 [C:\foo]tar cvf a:foo.tar ← 同上 [C:\foo]tar cvf a:foo.tar *.c ←カレントディレクトリの*.c [C:\foo]tar cvf a:foo.tar *.c *.h ←カレントディレクトリの*.cと*.hディレクトリを指定した場合は、デフォルトではサブディレクトリ まで再帰的に集めます。
次にこのアーカイブの内容を参照してみます。
例2)非圧縮、アーカイブ内容一覧表示 [C:\foo]tar tvf a:foo.tar
次はアーカイブの内容を解凍してみます。
例3)非圧縮、アーカイブのファイル解凍 [C:\foo]tar xvf a:foo.tar ← 全解凍 [C:\foo]tar xvf a:foo.tar bar.c ← bar.cだけ解凍 [C:\foo]tar xvf a:foo.tar "*.c" ← *.cだけ解凍 [C:\foo]tar xvf a:foo.tar "*.[ch]" ← *.cと*.hを解凍ワイルドカードを指定する場合は、上記のように必ず「""」で囲ん でくださいね。「""」で囲まなかった場合、まずカレントディレク トリにワイルドカードに適合するものを探して、それを解凍しよう としてしまいます。
他にも追加オプション -r (--append)、新規ファイル追加オプショ ン-u (--update)などがあります。それぞれ-c(--create)/-t(--list) /-x(--extract)オプションの代わりに指定してください。でも、 圧縮指定とは共用できないかも(!?)
圧縮する場合は、上記のそれぞれのオプション指定に加え -z オ プションを付加します。
例3)gzip圧縮、アーカイブ新規作成 [C:\foo]tar cvzf a:foo.tar.gz *一覧表示、解凍の場合も同様に -z オプションを付け加える事にな ります。
例4)gzip解凍、アーカイブ一覧表示、解凍 [C:\foo]tar tvzf a:foo.tar.gz ← 一覧表示 [C:\foo]tar xvzf a:foo.tar.gz ← 解凍ここで、-z の代わりに -Z を使用すると compress/uncompress の圧縮/解凍を行うというのが、GNU tar の本来の仕様なのですが、 今回紹介した GTAR251.ZIP のものでは、この z の大文字・小文字 の違いは意味を持ちません。
tarで使用するファイルの拡張子にはプログラム上の制限はあり
ません。しかし、人間の見易さという点で標準的に使われる(よう
になった)ものはあります。
というわけで、以下に tarを使用する場合に最も一般的(標準的)
に使われる拡張子をまとめておきます。
リムーバブルメディアの複数ボリュームに保存する場合は、-M (--multi-volume)オプションを使います。ただしマルチボリューム 指定と圧縮指定は同時に使う事はできません。
例1)マルチボリュームに保存する。 [C:\foo] tar Mcvf a:\backup.tar large_dir
次に、拡張属性も含めて保存する場合は -p(--all-files) オプ ションを使用します。
例2)拡張属性も保存する(圧縮有り) [C:\foo] tar pcvzf a:\backup.tar.gz ExtAttrFiles
標準入出力を使う場合は -f(--FILE)オプションで指定するファ
イル名に「-」を使います。
非圧縮でアーカイブし、gzipを直接指定して圧縮する場合は次の
ようになります。
例3)パイプを使い、gzip直接指定圧縮 [C:\foo] tar cvf - DIRNAME | gzip -c > bar.tar.gz逆に、gzipでファイルに落とさずに標 準出力に解凍したものをtarで一覧表示するには次のようになりま す。ファイルを取り出す場合も同様です。
例4)パイプを使い、gzip直接指定一覧表示 [C:\foo] gzip -dc bar.tar.gz | tar tvf -
GNUのツールのオプションには '-'ひとつだけで始まる短形式の オプション(UN*Xの標準的なオプション指定方法)と'--'で始まる長 形式のオプション(GNU独自の指定方法、...POSIXかも!?)がありま す。 例えば、以下の二つは全く同じ動作をします。
[C:\foo] tar tvf bar.tar [C:\foo] tar --list --verbose --file bar.tarここで、短形式では'-'を付ける事も可能です。以下に示すよう に。
[C:\foo] tar -tvf bar.tarさて、「GNU tarにおいて」この短形式と長形式を混在させる時 は短形式の前の'-'を省略しないようにすると良いです。
[C:\foo] tar --list -vf bar.tarあ、そうそうアーカイブファイル名は -f(--file)オプションと 対になっているので、-fの次のオプションで指定するようにしてね。 へたに間違えると大変なことになるよ(^^)/
これ、EMX標準ではついてこないヘッダファイルを使っていたり、 GNU makeではないmakeを使っていたりし てうまくコンパイルできんのです(^^; まあ、makeに関しては Makefileを用意してあげれば済むだけの話なのですが、どうもなん か足りない(謎)ような気がするのよねえ(^^;;;;
この GTAR251.ZIP はフリーのバックアップツールとして知られ ているGTAKを統合したパッケージになっているようです。 GTAK251.ZIPというアーカイブもあるのですが、こちらはなんかド ライバ集といった風情(!??) でも、GTAKとしての機能の説明は遠慮 させてください。だってテープ持ってないから、つっこんだ説明で きないんだもの(^^;;;;