| シャー | |
|---|---|
| 原作者 | ジェームズ・ゴスリング |
| 開発者 | さまざまなオープンソースおよび商用開発者 |
| オペレーティング·システム | Unix、Unixライク、VMS、Windows |
| タイプ | 指示 |
| シャー | |
|---|---|
| ファイル名拡張子 | .shar |
| フォーマットの種類 | アーカイブ形式、シェルスクリプト |
| オープンフォーマット? | はい[ 1 ] |
Unixオペレーティングシステムにおいて、shar(「シェルアーカイブ」に由来)はUnixユーティリティで作成されるアーカイブ形式sharです。sharファイルは自己解凍型アーカイブの一種で、有効なシェルスクリプトであり、実行するとファイルが再作成されます。ファイルの解凍には、通常、標準的なUnix Bourneシェルであるshのみが必要です。
sharファイルは「sharchives」(「/bin/sh archive」から)と呼ばれることもあります。[ 2 ]
shar コマンドはSingle Unix Specificationで指定されていないため、正式には Unix のコンポーネントではなく、レガシー ユーティリティであることに注意してください。
詳細
shar形式はプレーンテキストであるという利点があるが、実行可能であるというリスクを伴う。[ 3 ]このため、テキストファイルの転送でも、通常はより古く汎用性の高いtarファイル形式が好まれる。GNUはGNU Sharutilsコレクションで独自のsharバージョンを提供している。
unsharプログラムは他のオペレーティング システム向けにも作成されていますが、必ずしも信頼できるわけではありません。shar ファイルはシェル スクリプトであり、理論的にはシェル スクリプトで実行できることはすべて実行できます (拡張シェルや類似シェルの非互換機能の使用を含む)。そのため、Unix 環境以外ではその有用性が制限されます。
自己解凍型シェルスクリプト(sharに限らずあらゆる種類)の欠点は、特定のプログラム実装に依存する可能性があることです。古いバージョンのmakeselfで作成されたシェルアーカイブ([ 4 ]たとえば、オリジナルのUnreal Tournamenttrap for Linuxインストーラー)は、組み込みコマンドへの引数が不足している場合の処理方法の変更により、bash 3.xでは実行できません。
歴史と変種
ジェームズ・ゴスリングは1982年にsharユーティリティの最初のバージョンを書いたとされています[ 1 ]:§1。 また、この概念の初期の例(1978-79年とされる)を、次のような単純なシェルスクリプトの形で書きました:[ 5 ] [ 6 ] [ 7 ]
# shar -- シェル アーカイバAR = $1 shift for i do echo a - $i echo "echo x - $i " >> $AR echo "cat > $i <<'!Funky!Stuff!'" >> $AR cat $i >> $AR echo "!Funky!Stuff!" >> $AR doneシャーには以下の亜種が知られている: [ 8 ]
- shar 1.x (1982) ゴスリング作。パブリックドメインのシェルスクリプト。
- 現在のFreeBSD shar。3条項BSDライセンス、シェルスクリプト。md5sumを追加。
- shar2またはxshar (1988)、William Davidsen 著。パブリックドメイン、Cプログラム。
- cshar (1984)、Michael A. Thompson と Mark Smith によるもの。現在は bitrot により失われています。C プログラム。
- cshar (1988)リッチ・ザルツ著、Cプログラム。shar 3.49 の影響を受けていた可能性が高い。
- ccshar (1996) は、cshスクリプトを出力するように修正されたものです。Usenetではほとんど使用されていません。
GNUは、一般的なGNU UnixライクなユーティリティのネイティブWin32ポートであるUnxUtilsコレクションの一部として、Microsoft Windowsshar用の個別のパッケージとして利用可能です。 [ 9 ]
類似のフォーマット
同じコンセプトのVMSオペレーティングシステム用のバージョンが、 1987年にメルボルン応用経済社会研究所のマイケル・ベドナレクによってDCLスクリプトVMS_SHAR.COMとして作成されました。[ 10 ]これは後にゼロックスのジェームズ・A・グレイ、[ 11 ]とキングス・カレッジ・ロンドンのアンディ・ハーパーによって保守・拡張されました。[ 12 ] [ 13 ]
makeself (2001–) は、シェルスクリプトのヘッダー技術を用いて自己解凍型のtarball ( *.run、application/x-makeself) を生成するシェルスクリプトです。tar を使用するため、makeself をプレーンテキストで直接使用することはできませんが、優れた圧縮率などの機能により、21世紀には Linux ソフトウェアのパッケージ化を目指すソフトウェアベンダーの間で人気が高まっています。[ 14 ]
参照
参考文献
- ^ a b「GNU 'shar'ユーティリティ」 gnu.org .フリーソフトウェア財団. 2019年12月8日閲覧。
- ^ "sharchive" . ftp.informatik.rwth-aachen.de . 2024年1月2日閲覧。
- ^ Apple (1993-06-06). 「Mac OS X shar(1) Man Page」 . Apple. 2009年11月7日時点のオリジナルよりアーカイブ。 2009年11月7日閲覧。
- ^ "makeself "trap" コマンドの修正" . Svn.icculus.org. 2000年11月20日. 2012年7月14日時点のオリジナルよりアーカイブ。2011年8月30日閲覧。
- ^ uw-beave!jim (1983年4月2日). 「Re: xlisp配布ファイルを分割するプログラム」 .ニュースグループ: net.sources . メッセージID:bnews.uw-beave.451 . 2017年3月27日閲覧。
- ^ 「shar: a blast from the past」 . James Gosling: on the Java Road . 2017年3月27日時点のオリジナルよりアーカイブ。 2017年3月26日閲覧。
- ^ほぼ同じスクリプト「bundle」が、カーニハンとパイクの「UNIXプログラミング環境」(1984年)の97ページに記載されている。
- ^ Dickey, Thomas E. 「Shar/Utils に関するコメント」 . invisible-island.net .
- ^いくつかのGNUユーティリティのネイティブWin32ポート
- ^ Michael Bednarek (1987年6月9日). 「VMS用のshar(一種の)」 .ニュースグループ: comp.os.vms . Usenet: [email protected] . 2024年9月4日閲覧。
- ^ Jim Gray (1988年5月8日). 「VMS_SHARE V6.0」 .ニュースグループ: comp.os.vms . Usenet: 880508-073131-5929@Xerox . 2024年9月4日閲覧。
- ^ Andy Harper (1989年7月7日). 「VMS_SHARE バージョン7」 .ニュースグループ: comp.os.vms . Usenet: [email protected] . 2024年9月4日閲覧。
- ^ Andy Harper (1995年7月6日). 「VMS_SHARE 8.5 を発表」 .ニュースグループ: vmsnet.sources.d . Usenet: [email protected] . 2024年9月4日閲覧。
- ^ "makeself – Unix 上で自己解凍型アーカイブを作成する" .
外部リンク
- – ManKier.com のLinux一般コマンドマニュアル
- sharファイルに関する情報(カーネギーメロン大学)
- GNU シャルユーティリティ