Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名前
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: <name>/part## <name> は -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 と compress の 使用は煙たがられる)。 -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 プロセスで \[u9593]違いなく 問題を引き起こす shar ファイルが作られる。 この機能を使うのは、合意の取れた集団内で受け渡されるアーカイブのみに すること。 もちろん、-X は Usenet に発信される シェルアーカイブのためのものではない。 -B, -z, -Z をネットワーク上の shar ファイルに使うと、 非常に非難されるだろう。 -m と -F を使わ ない場合も、時々苦情を言われるだろう。
関連項目
unshar(1)
返り値
不正なオプション・矛盾するオプション、 一般でないファイル・見つからないファイル・アクセス できないファイル、 (有り得ない) メモリ割り当ての失敗、に対するエラーメッセージ。
著者
shar と unshar プログラムは多くの著者の協同作品である。 多くの人々が、問題の報告・いろいろ な改良の示唆・実際のコードの提供に 貢献してくれた。 これらの人々は sharutils ディストリ ビューションの THANKS というファイルにリストされている。 September 10, 1995 SHAR(1)