0

对不起,如果标题令人困惑。让我通过一个例子来说明。

在 Linux 中,以下两个命令同样有效:

ls -lh /tmp

ls /tmp -lh

但在我的 Mac 中,第二个不起作用。

我想知道是因为他们使用不同的 ls(GNU VS BSD),还是外壳有一些不同。

更重要的是,我如何调整 Mac 的终端,以便第二个可以工作,不仅适用于 ls,还适用于其他命令。

4

2 回答 2

1

您无法调整外壳,正如您所怀疑的那样,区别在于 GNU 与 BSD 工具。您可能会尝试在 Mac 上编译 GNU 工具链,但我不确定这是否是一个好主意,因为操作系统可能依赖这些工具,不兼容的更改可能会产生不可预知的后果。您可以尝试将它们编译为/usr/local/前缀并仅在您自己的 shell 中使用它们,但仍然要格外小心。

于 2012-09-09T15:27:07.423 回答
0

这是版本的差异ls。shell 不知道破折号选项和其他参数之间的区别;所有都传递给命令,该命令决定了它们的含义。

于 2012-09-09T15:26:59.140 回答