.\" Copyright (C) 1994-1999 Free Software Foundation, Inc. .\" .\" Permission is granted to make and distribute verbatim copies of .\"this .\"manual provided the copyright notice and this permission notice are .\"preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of .\"this manual under the conditions for verbatim copying, provided that .\"the entire resulting derived work is distributed under the terms of a .\"permission notice identical to this one. .\" .\" Permission is granted to copy and distribute translations of this .\"manual into another language, under the above conditions for modified .\"versions, except that this permission notice may be stated in a .\"translation approved by the Foundation. .\" .\" Japanese Version Copyright (c) 2000 Yuichi SATO .\" all rights reserved. .\" Translated Wed Jun 21 02:18:21 JST 2000 .\" by Yuichi SATO .\" .\"WORD: archive アーカイブ .\"WORD: vanilla 簡潔な .\"WORD: mandatory 必須の .\"WORD: verbose 詳細な .\"WORD: submitter 作成者 .\"WORD: switch オプション .\"WORD: pack パックする .\"WORD: unpack ファイルを取り出す .\"WORD: header ヘッダー .\"WORD: stock 格納する .\"WORD: protection アクセス権 .\"WORD: feature 機能 .\" .TH SHAR 1 "September 10, 1995" .SH 名前 shar \- シェルアーカイブを作成する .SH 書式 .nf shar [ options ] file ... shar \-S [ options ] .fi .SH 説明 shar は「シェルアーカイブ (shar ファイル)」を作成する。 これはテキスト形式なので、メールで送ることができる。 これらのファイルをほどくには、 /bin/sh を使って実行すればよい。 作成されたアーカイブは、\f2\-o\f1 オプションで指示されない限り、 標準出力に送られる。 shar には様々な機能があるので、 shar ファイルの作成や shar の「賢さ (smartness)」の指定は、非常に柔軟に行うことができる。 アーカイブは、「簡潔 (vanilla)」にも詳細にもできる。 .SH オプション .PP オプションには、\- で始まる 1 文字のバージョンと、 \-\- で始まる長いバージョンがある。 \f2\-\-help\f1, \f2\-\-version\f1, \f2\-\-no-i18n\f1, \f2\-\-print-text-domain-dir\f1 は例外で、 短いバージョンがない。 長いオプションに必須の引き数は、短いオプションでも必須である。 オプションはどのような順番でも与えることができる。 互いに依存しているオプションもある。たとえば、 .nf \f2\-l\f1 や \f2\-L\f1 オプションを使う場合、\f2\-o\f1 オプションが必要である。 \f2\-a\f1 オプションを使う場合、\f2\-n\f1 オプションが必要である。 下記の \f2\-V\f1 オプションも参照すること。 .fi .SS フィードバックを与える: .IP "\f2\-\-help\f1" ヘルプを標準出力に表示し、すぐに終了する。 .IP "\f2\-\-version\f1" プログラムのバージョン番号を標準出力に表示し、すぐに終了する。 .IP "\f2\-q\f1 \f2\-\-quiet\f1 \f2\-\-silent\f1" アーカイブを作成するとき、詳細なメッセージを出力しない。 .SS ファイルの選択: .IP "\f2\-p\f1 \f2\-\-intermix-type\f1" 指定位置に依存するパラメーターオプションの使用を許す。 \f2\-B\f1, \f2\-T\f1, \f2-z\f1, \f2\-Z\f1 オプションを (ファイルリストに) 入れてよい。 このオプションの後ろのファイルはすべて、指示されたモードで処理される。 .IP "\f2\-S\f1 \f2\-\-stdin-file-list\f1" コマンドラインからではなく、標準入力からパックするファイルの一覧を読み込む。 入力は find コマンドで生成される形式と同じく、 1 行に 1 つのファイル名でなければならない。 パックするファイルの一覧をコマンドラインに書けない場合に、 このオプションは非常に役立つ。たとえば、 .nf find . \-type f \-print | sort | shar \-S \-Z \-L50 \-o /tmp/big .fi \f2\-p\f1 が指定された場合、 \f2\-B\f1, \f2\-T\f1, \f2\-z\f1, \f2\-Z\f1 オプションを 標準入力に入れることができる (行はファイル名で区切られる)。 標準入力の行数、ファイル名、オプションは最大 1024 を越えてはならない。 .SS 出力の分割: .IP "\f2\-o\f1 XXX \f2\-\-output-prefix=\f1XXX" アーカイブを標準出力に送らず、ファイル XXX.01 から XXX.nn に保存する。 \f2\-l\f1 または \f2\-L\f1 オプションを使う場合、 このオプションを使うこと。 .IP "\f2\-l\f1 XX \f2\-\-whole-size-limit=\f1XX" 出力ファイルのサイズを XX キロバイトに制限しようとする (このサイズより小さくなる場合は、 複数の入力ファイルをまとめた出力ファイルを作成する)。 しかし、(1 つの入力ファイルをアーカイブしたサイズが これより大きくなる場合でも) 入力ファイルを途中で分割しない。 .IP "\f2\-L\f1 XX \f2\-\-split-size-limit=\f1XX" 出力ファイルのサイズを XX キロバイトに制限し、必要ならば分割する。 このオプションで作られた、分割形式のアーカイブファイルは、 正しい順番でファイルを取り出さなければならない。 .SS shar ヘッダーの制御: .IP "\f2\-n\f1 name \f2\-\-archive-name=\f1name" shar ファイルのヘッダーにアーカイブ名を入れる。 \f2\-a\f1 オプションを参照すること。 .IP "\f2\-s\f1 who@where \f2\-\-submitter=\f1who@where" 自動的に決定される作成者名を上書きする。 .IP "\f2\-a\f1 \f2\-\-net-headers\f1" 次のようなヘッダーを自動生成する。 .nf Submitted-by: who@where Archive-name: /part## .fi は \f2\-n\f1 オプションで指示しなければならない。 name に '/' が含まれている場合、"/part" は使われない。つまり、 .RS 10m .nf .ta 30n \-n xyzzy の場合: xyzzy/part01 xyzzy/part02 \-n xyzzy/patch の場合: xyzzy/patch01 xyzzy/patch02 \-n xyzzy/patch01. の場合: xyzzy/patch01.01 xyzzy/patch01.02 .RE .fi .IP "" who@where がデフォルトでは不適切な場合、\f2\-s\f1 オプションを使って明示的に宣言できる。 who@where は本来 `whoami`@`uname` で作られる。 .IP "\f2\-c\f1 \f2\-\-cut-mark\f1" shar ファイルを cut line で始める。'Cut here' と書かれた行が、 各出力ファイルの先頭に置かれる。 .SS ファイルの格納法の選択: .IP "\f2\-M\f1 \f2\-\-mixed-uuencode\f1" 混合モード。ファイルがテキストなのかバイナリなのかを決定し、 正しくアーカイブを作る (デフォルトである)。 バイナリであるとわかったファイルは、パックする前に uuencode される (ネットワーク上の多くの人に、uuencode の使用は煙たがられる)。 .IP "\f2\-T\f1 \f2\-\-text-files\f1" すべてのファイルをテキストとして扱う。 .IP "\f2\-B\f1 \f2\-\-uuencode\f1" すべてのファイルをバイナリとして扱い、パックする前に uuencode する。 このオプションは、アーカイブのサイズを増大させる。 受信者は、ファイルを取り出すために uudecode を持っていなければならない (ネットワーク上の多くの人に、uuencode の使用は煙たがられる)。 .IP "\f2\-z\f1 \f2\-\-gzip\f1" パックする前に、すべてのファイルを gzip して uuencode する。 受信者は、ファイルを取り出すために uudecode と gzip を持っていなければならない (ネットワーク上の多くの人に、uuencode と gzip の 使用は煙たがられる)。 .IP "\f2\-g\f1 LEVEL \f2\-\-level-for-gzip=\f1LEVEL" 圧縮するとき、'\-LEVEL' を gzip のパラメーターとして使う。 デフォルトは 9 である。 \f2\-g\f1 オプションは、デフォルトで \f2\-z\f1 オプションをオンにする。 .IP "\f2\-Z\f1 \f2\-\-compress\f1" パックする前に、すべてのファイルを compress して uuencode する。 受信者は、ファイルを取り出すために uudecode と compress を持っていなければならない (ネットワーク上の多くの人に、uuencode と compress の 使用は煙たがられる)。 \f2\-C\f1 オプションは、\f2\-Z\f1 と同義であるが、推奨されない。 .IP "\f2\-b\f1 BITS \f2\-\-bits-per-code=\f1BITS" 圧縮するとき、'\-bBITS' を compress のパラメーターとして使う。 \f2\-B\f1 オプションは、デフォルトで \f2\-Z\f1 オプションをオンにする。 デフォルトの値は 12 である。 .SS 転送エラーに対する保護: .IP "\f2\-w\f1 \f2\-\-no-character-count\f1" ファイルを取り出すした後、'wc \-c' を使って各ファイルをチェックしない。 デフォルトではチェックする。 .IP "\f2\-D\f1 \f2\-\-no-md5-digest\f1" 取り出したファイルを検査するために \&'md5sum' ダイジェストを使わない。 デフォルトでは、チェックする。 .IP "\f2\-F\f1 \f2\-\-force-prefix\f1" 必要がない場合でも、強制的にプレフィックス文字 (\f2\-d\f1 オプションの引き数が 'X' で始まっていない限り、通常は 'X') を すべての行の行頭におく。 特に \f2\-B\f1 や \f2\-Z\f1 が使われる場合、 このオプションはアーカイブのサイズを少し増加させる。 .IP "\f2\-d\f1 XXX \f2\-\-here-delimiter=\f1XXX" SHAR_EOF のかわりに XXX を shar アーカイブの中のファイルの境界に使う。 このオプションは、shar ファイルをその人独自のものにしたい人のためにある。 .SS 何種類かの shar ファイルの作成: .IP "\f2\-V\f1 \f2\-\-vanilla-operation\f1" unshar をする環境に sed と echo だけがあれば良いような、 「簡潔な (vanilla)」shar ファイルを生成する。 さらに、\f2\-x\f1 オプションを使わないときは、 "if test" をサポートしなければならない。 \f2\-V\f1 オプションは、"network cop" (または、"brown shirt" (訳註:やたらと検閲したがる人)) が 不快に感じるオプションを暗黙のうちに不可にする。 しかし、\f2\-B\f1, \f2-z\f1, \f2\-Z\f1, \f2\-p\f1, \f2\-M\f1 オプションと同時に指定されると、警告を発する (これらのオプションは、unshar をする環境に uudecode, gzip, compress を必要とする)。 .IP "\f2\-P\f1 \f2\-\-no-piping\f1" shar ファイル (の展開) にパイプではなく一時ファイルを使う。 .IP "\f2\-x\f1 \f2\-\-no-check-existing\f1" チェックせずに、既に存在するファイルを上書きする。 \f2\-x\f1 も \f2\-X\f1 も指定されない場合は、 アーカイブからファイルを取り出すときに、 既に存在するファイルをチェックして上書きしない。 ファイルを取り出すとき、 .RS 10m sh archive -c .RE .IP "" というように、\f2\-c\f1 がスクリプトへの引き数として渡されると、 既に存在するファイルが無条件に上書きされる。 .IP "\f2\-X\f1 \f2\-\-query-user\f1" ファイルを取り出すとき、ファイルの上書きをユーザーに対話的に尋ねる。 (ネットワーク上に送信する shar ファイルに使ってはならない)。 .IP "\f2\-m\f1 \f2\-\-no-timestamp\f1" アーカイブからファイルを取り出すときに 'touch' コマンドを生成しない。 ファイル修正日時は復元されない。 .IP "\f2\-Q\f1 \f2\-\-quiet-unshar\f1" 詳細出力をしない。 ファイルを取り出すときに出力されるコメントをアーカイブに含めない。 .IP "\f2\-f\f1 \f2\-\-basename\f1" パスを考慮せず、ファイル名だけで復元をする。 このオプションはファイル名だけが使われるようにする。 shar ファイルが複数のディレクトリから作られる場合に役立つ。 ディレクトリ名が shar に渡される場合、 \f2\-f\f1 オプションが指定されているかどうかに関係なく、 そのディレクトリ以下の階層は復元されることに注意すること。 .SS 国際化: .IP "\f2\-\-no-i18n\f1" 国際化されたシェルアーカイブを作らず、デフォルトの英語メッセージを使う。 shar は通常、 アーカイブからファイルを取り出すときに (環境変数 LANG/LC_MESSAGES で決定される) その人の好みの言語で メッセージを出力することができるアーカイブを作る。 ファイルを取り出すとき、その人の言語のメッセージファイルがない場合は、 メッセージは英語になる。 .IP "\f2\-\-print-text-domain-dir\f1" shar がいろいろな言語のメッセージファイルを見つけるための ディレクトリを表示し、すぐに終了する。 .SH 例 .nf .ta 37n shar *.c > cprog.shar # すべての C プログラムソース shar \-Q *.[ch] > cprog.shar # 詳細出力なし。.c と .h ファイル shar \-B \-l28 \-oarc.sh *.arc # すべてのバイナリ .arc ファイルを、 # ファイル arc.sh.01 - arc.sh.NN へ shar \-f /lcl/src/u*.c > u.sh # ファイル名のみを使用 .ta .fi .SH 警告 .PP ファイルを取り出すとき作られるディレクトリに対して、 chmod と touch が起動されることはない。 よって、ディレクトリを shar でパックすると、 取り出されたディレクトリのアクセス権・修正日時は、 元のディレクトリのものと一致しない。 .PP shar にディレクトリを渡すと、 ディレクトリは 2 回以上スキャンされる。 よって、shar が動作している間にディレクトリを変更しないように 注意しなければならない。 .PP 出力ファイルが入力ファイルに含まれないように注意すること。 さもないと、shar はディスクが溢れるまでループする。 特に、shar にディレクトリを渡すときは、 出力ファイルをそのディレクトリ (もしくはそのサブディレクトリ) に 置かないように注意すること。 .PP \f2\-B\f1, \f2\-z\f1, \f2\-Z\f1, 特に \f2\-M\f1 を使うと、 ファイル数に応じてアーカイブプロセスが非常に遅くなる。 .PP \f2\-X\f1 オプションを使うと、多くの unshar プロセスで \f2\間違いなく\f1 問題を引き起こす shar ファイルが作られる。 この機能を使うのは、合意の取れた集団内で受け渡されるアーカイブのみにすること。 もちろん、\f2\-X\f1 は Usenet に発信される シェルアーカイブのためのものではない。 \f2\-B\f1, \f2\-z\f1, \f2\-Z\f1 をネットワーク上の shar ファイルに使うと、 非常に非難されるだろう。 \f2\-m\f1 と \f2\-F\f1 を使わない場合も、時々苦情を言われるだろう。 .SH 関連項目 .PP unshar(1) .SH 返り値 .PP 不正なオプション・矛盾するオプション、 一般でないファイル・見つからないファイル・アクセスできないファイル、 (有り得ない) メモリ割り当ての失敗、に対するエラーメッセージ。 .SH 著者 shar と unshar プログラムは多くの著者の協同作品である。 多くの人々が、問題の報告・いろいろな改良の示唆・実際のコードの提供に 貢献してくれた。 これらの人々は sharutils ディストリビューションの THANKS というファイルにリストされている。