- ベストアンサー
LinuxとMacのコマンドのオプションの違い
LinuxとMacのターミナルコマンドのオプションの違いについて質問があります。 例えば、lsコマンドを用いる場合、Linuxでは 「ls -l /」と「ls / -l 」は同じ動作をしますが、Macでは、後者(オプションを後ろにつける)と動作しません。 同様にrmコマンドの-rなども後ろにつけると動作しません。 この違いは何の違いから生じるものなのでしょうか? ターミナル?コマンド?shell?OS? また、macで動作させる方法はあるのでしょうか? よろしくお願いいたします。 LinuxはUbuntu16.04、MacはMojaveです。 シェルは共にbashです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
MacはMach OSでBSD系、LinuxはLinus Torvalds氏が独自に開発したOSですが、作法はSystem V系です。そして、どちらの系列であっても、コマンドの基本は、 コマンド {オプション} 引数 の並びで書くのが基本です。従って、あなたが書かれたlsコマンドの場合、ls -l / と書くのが通常です。そうではない並びで書いて、言うことをきかないというのは、まあそうでしょうね、ということです。
その他の回答 (2)
- unokwave
- ベストアンサー率58% (966/1654)
macOSの基本コマンドラインツールはFreeBSD由来です。 つまりGNUのツールではなくBSDからの継承です。 https://github.com/freebsd/freebsd/blob/master/bin/ls/ls.c LinuxディストリビューションはGNUツールを使っているのが一般的です。 https://github.com/wertarbyte/coreutils/blob/master/src/ls.c
お礼
ありがとうございました。
- hiodraiu
- ベストアンサー率15% (451/2846)
パラメータの処理手順が違うのだろうってのは、容易に想像できます。ソースを見ていないので、あくまで想像です。
お礼
ありがとうございました。
お礼
なるほど、linuxが融通してくれていたのですね。 これからはオプションを前につけるように心がけたいと思います。 ありがとうございました。