在Mac的终端中,我们可以使用命令行参数作为命令结尾的“选项”吗?

时间:2012-09-09 15:24:58

标签: macos bash command-line command-line-arguments

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

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

ls -lh /tmp

ls /tmp -lh

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

我想知道是不是因为他们使用不同的ls(GNU V.S. BSD),或者shell中存在一些差异。

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

2 个答案:

答案 0 :(得分:1)

你不能调整shell,区别在于您怀疑的GNU vs BSD工具。您可能会尝试在Mac上编译GNU工具链,但我不确定这是一个好主意,因为操作系统可能依赖这些工具,不兼容的更改可能会产生不可预测的后果。您可以尝试将它们编译为/usr/local/前缀并仅在您自己的shell中使用它们,但仍然 - 请务必小心谨慎。

答案 1 :(得分:0)

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