Macのターミナル:ls -lのオプションが最後だと認識されない

UNIXのコマンドlsです。
Linux上なら

ls -l *.c

の「-l」オプションをコマンド名の直後に付けても、いちばん最後に付けても同じ結果になるのですが、Mac OS X上のターミナルで行うと

ls: -l: No such file or directory

と言われてしまいます。同じように、

rm -i ファイル名 

とすると確認を求められるのですが、

rm ファイル名 -i

とするとファイルが削除されたあとで

rm: -i: No such file or directory

と表示されてしまいます。これはあとから思いついてオプションを入れることの多い自分にはちょっと使いにくい仕様です。仕様なのかどうか本当のことは分かりませんが。

オプションがコマンド名の直後だけで良いのならば実装するのは簡単です。ですが、ライブラリでも使えば何でもないだろうに。何か理由があるのでしょうか。

もしかすると、別のUNIX系コマンド群のセットのようなものがあって、置き換えると使えるようになったりするのでしょうか。あれば使いたいんだけど。

コメント

  1. マサヤン より:

    私もあまり詳しくないですが、GNU と BSD 系という 2 系統があり、Mac の内部は BSD 系のコマンドでできているので、BSD 系の ls 等が実行されています。
    $ man ls
    などすると、
    BSD General Commands Manual
    と出てきます。
    詳しくないので、リンクを貼ります (英語):
    https://unix.stackexchange.com/questions/104714/what-is-the-difference-between-unix-linux-bsd-and-gnu

    個人的には GNU 系コマンドが好みなので、sed 等は GNU 系をインストールして、エイリアスを登録して使っています。GNU 版 ls があるかどうかは不明。

    • satoryosato より:

      BSD系に固有のことだったのですね。詳しいリンクもありがとうございました。