对不起,如果标题令人困惑。让我举一个例子说明。
在Linux中,以下两个命令同样有效:
ls -lh /tmp
ls /tmp -lh
但在我的Mac中,第二个不起作用。
我想知道是不是因为他们使用不同的ls(GNU V.S. BSD),或者shell中存在一些差异。
更重要的是,我如何调整Mac的终端,以便第二个终端可以工作,不仅适用于ls,还适用于其他命令。
答案 0 :(得分:1)
你不能调整shell,区别在于您怀疑的GNU vs BSD工具。您可能会尝试在Mac上编译GNU工具链,但我不确定这是一个好主意,因为操作系统可能依赖这些工具,不兼容的更改可能会产生不可预测的后果。您可以尝试将它们编译为/usr/local/
前缀并仅在您自己的shell中使用它们,但仍然 - 请务必小心谨慎。
答案 1 :(得分:0)
这是ls
版本的差异。 shell不知道破折号选项和其他参数之间的区别;所有都被传递给命令,这决定了它们的含义。