• ベストアンサー

LinuxとMacのコマンドのオプションの違い

LinuxとMacのターミナルコマンドのオプションの違いについて質問があります。 例えば、lsコマンドを用いる場合、Linuxでは 「ls -l /」と「ls / -l 」は同じ動作をしますが、Macでは、後者(オプションを後ろにつける)と動作しません。 同様にrmコマンドの-rなども後ろにつけると動作しません。 この違いは何の違いから生じるものなのでしょうか? ターミナル?コマンド?shell?OS? また、macで動作させる方法はあるのでしょうか? よろしくお願いいたします。 LinuxはUbuntu16.04、MacはMojaveです。 シェルは共にbashです。

質問者が選んだベストアンサー

  • ベストアンサー
  • sat000
  • ベストアンサー率40% (324/808)
回答No.3

MacはMach OSでBSD系、LinuxはLinus Torvalds氏が独自に開発したOSですが、作法はSystem V系です。そして、どちらの系列であっても、コマンドの基本は、 コマンド {オプション} 引数 の並びで書くのが基本です。従って、あなたが書かれたlsコマンドの場合、ls -l / と書くのが通常です。そうではない並びで書いて、言うことをきかないというのは、まあそうでしょうね、ということです。

choko343
質問者

お礼

なるほど、linuxが融通してくれていたのですね。 これからはオプションを前につけるように心がけたいと思います。 ありがとうございました。

その他の回答 (2)

  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.2

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

choko343
質問者

お礼

ありがとうございました。

  • hiodraiu
  • ベストアンサー率15% (451/2846)
回答No.1

パラメータの処理手順が違うのだろうってのは、容易に想像できます。ソースを見ていないので、あくまで想像です。

choko343
質問者

お礼

ありがとうございました。

関連するQ&A