0

タイトルが紛らわしくてすみません。例を挙げて説明しましょう。

Linux では、次の 2 つのコマンドは同じように機能します。

ls -lh /tmp

ls /tmp -lh

しかし、私の Mac では、2 番目の方法は機能しません。

異なる ls(GNU VS BSD) を使用しているためなのか、シェルに何らかの違いがあるのか​​ 疑問に思っていました。

さらに重要なのは、Mac のターミナルを微調整して、2 番目のターミナルが ls だけでなく他のコマンドでも機能するようにするにはどうすればよいかということです。

4

2 に答える 2

1

シェルを微調整することはできません。違いは、ご想像のとおり、GNU ツールと BSD ツールにあります。Mac で GNU ツールチェーンをコンパイルしようとするかもしれませんが、OS がこれらのツールに依存している可能性があり、互換性のない変更が予測できない結果をもたらす可能性があるため、それが良いアイデアかどうかはわかりません。それらをプレフィックスにコンパイルして、/usr/local/自分のシェルでのみ使用することもできますが、それでも細心の注意を払って続行してください.

于 2012-09-09T15:27:07.423 に答える
0

のバージョンの違いですls。シェルはダッシュ オプションと他の引数の違いを認識しません。すべてがコマンドに渡され、その意味が決定されます。

于 2012-09-09T15:26:59.140 に答える