Linuxユーザーの一部のコマンドがハイフンで実行され、他のコマンドが実行されないのはなぜですか?
たとえば、コントラストまたはls -l
?rm -r
ps ax
tar xvf
歴史的理由があると思うが意味は同じなので統一すればいいのでしょうか?
答え1
答え2
ダッシュのないコマンドラインオプション(例tar
)は、あまりにも多くのアプリケーションが依存しているため削除できない従来のコマンドラインフラグdd
です。ps
OpenBSD マニュアルtar
以前のスタイルオプションを「レガシー」オプションと呼びますが、この古い構文を説明するために「パックオプション」または「ボックスオプション」(または同様のもの)という名前を見たことがあります。
dd
ダッシュではなくオプションを継承します。JCL(作業制御言語)IBMメインフレームから。
これらのユーティリティの中には破線のオプションもあります。POSIX仕様ps
レガシーオプションへの言及はまったくありません。 仕様dd
「オプション」の代わりに「オペランド」をリストし、tar
POSIXによってまったく標準化されていません(標準アーカイバーはいpax
)。
また、最新のユーティリティはダッシュではなくオプション(またはオペランド)を使用して実行するアクションを決定します。たとえば、次のようになりますgit commit -p
。lxc exec
これは実際の「アクション」と非常によく似ていますtar
。 ~からオリジナルtar
マニュアルUnixバージョン7:
tar
テープにファイルを保存して復元します。その操作はkey
パラメータによって制御されます。例key
最大1文字の文字列機能文字そして1つ以上があるかもしれません機能修飾子。
ps
Unixリリース3のオリジナル実装持つ点線オプション(ここではマニュアルセクションは管理ユーティリティセクションである1ではなく8です。)次のバージョンではそれはそれらを失う。
注:テキスト全体で「オプション」と「オペランド」という用語を混在させます。技術的には、「オプション」はダッシュを含む単一の文字または文字です(例:)。-a
一方、「オペランド」はオプションではありません。ただし、どちらもコマンドラインパラメータです。