こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

LinuxとMacのターミナルコマンドのオプションの違いについて質問があります。
例えば、lsコマンドを用いる場合、Linuxでは
「ls -l /」と「ls / -l 」は同じ動作をしますが、Macでは、後者(オプションを後ろにつける)と動作しません。
同様にrmコマンドの-rなども後ろにつけると動作しません。

この違いは何の違いから生じるものなのでしょうか?
ターミナル?コマンド?shell?OS?

また、macで動作させる方法はあるのでしょうか?

よろしくお願いいたします。

LinuxはUbuntu16.04、MacはMojaveです。
シェルは共にbashです。

投稿日時 - 2019-06-16 12:50:08

QNo.9626313

暇なときに回答ください

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

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

投稿日時 - 2019-06-16 17:20:15

お礼

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

投稿日時 - 2019-06-16 19:43:09

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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

投稿日時 - 2019-06-16 16:10:29

お礼

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

投稿日時 - 2019-06-16 19:43:54

ANo.1

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

投稿日時 - 2019-06-16 13:02:35

お礼

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

投稿日時 - 2019-06-16 19:44:22

あなたにオススメの質問