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