web-dev-qa-db-ja.com

コマンドラインオプションに短い選択肢と長い選択肢があるのはなぜですか?

ほとんどのunixoidコマンドは、ls -als --all、またはls -Als --almost-allなど、コマンドラインオプションの短い選択肢と長い選択肢を備えています。なぜこれらの2つの方法が存在するのですか? 1つは入力する方が短く、もう1つは読みやすく理解しやすいです。しかし、シェルスクリプトを作成するたびに、どちらを使用するかを決定する必要があります。 2つの選択肢が存在する理由はわかっていますか?どちらが最初で、なぜもう一方が導入されたのですか。たとえば、DOS/Windowsでは、大文字と小文字を区別しない1文字のオプションしかほとんどありません。

23
ygoe

当初は、1文字のオプションしかありませんでした。一部のプログラムは複数文字のオプションを使用しましたが、ダッシュは1つしかありません。 AFAIKダブルダッシュ複数文字オプションは [〜#〜] gnu [〜#〜] ;これらは、読みやすく、覚えやすいことが多いために導入されました(52を超える場合もあります)。現在、多くのプログラムには両方があります。コマンドラインで入力して文字を覚えるときの短いオプション、スクリプトの長いオプション、または長いオプション名だけを覚えている場合はコマンドラインです。

パラメーターを指定するさまざまな方法(短いものと長いもの)で私が見ることができるもう1つの目的は、入力するときに、Unix/Linuxコマンドラインの人々はできるだけ短いコマンドを使いたいということです。ただし、これらは不可解になる可能性があり、これらの短いバージョンを使用してスクリプトを作成すると、将来的に理解が困難になる可能性があります。長いバージョンを使用すると、特にこのコマンドがよく知られているコマンドではなく、実際にローカルで記述されたスクリプトである場合、このコマンドのtheの第一人者ではない人でも、同じコマンドを読みやすく理解しやすくなります。

1
jfmessier

それは好みの問題だと思うかもしれません。コマンドラインで入力するときは、特にrun-together-options(例:ls -AL)の場合は、短いオプションが優先される場合があります。長いオプションは意図を伝えるのに優れているため、ls --almost-all --dereferenceを読むときにmanページを参照する必要はありません。

当然、経験を積むにつれて、-A-Lの両方の短いオプションが十分によく知られており、この追加のドキュメントは必要ないことがわかります。特に、評価、リダイレクトなどの興味深い方法で複数のコマンドを組み合わせる可能性がある複雑なコマンドでは、このような場合、ドキュメントよりも簡潔にする方がよいでしょう。

1
Chen Levy