命令在OSX终端中使用固定顺序的选项。所以,例如,我必须使用rm -rf name
而不是rm name -rf
,这对我来说更方便(例如我可以先添加所有名称,然后查看我是否有目录并需要添加-r
)。
有没有办法让OSX命令更通用的语法?
我不确定这是可能的,但是,例如,我想知道一些shell命令的预处理与... python程序,它将重新格式化选项并调用适当的命令。但我不熟悉python,不知道每次编写命令时如何运行这样的程序。
答案 0 :(得分:5)
OSX具有常见UNIX工具的BSD实现。这些比在典型的Linux中找到的GNU实现更严格。因此,不仅rm
,而且例如ls
,mkdir
,标志必须位于OSX中的文件名参数之前。我觉得这也很烦人。
可能你可以安装这些工具的GNU版本。在最坏的情况下,您可以下载源代码并构建它们。将它们放在一个新的专用目录中,并将该目录放在PATH
。
我认为还有另一种方式。你不能像这样改变BSD工具的行为。
<强>更新强>
正如@bdesham所指出的,您可以使用Homebrew安装coreutils
来获取GNU实现。我也可以通过MacPorts确认。
答案 1 :(得分:1)
每个Unix / Linux命令确定自己的参数和选项所需的顺序或分组。没有通用的方法来覆盖它。
但是,Bash(Bourne-again shell,long story ...)shell(即命令行解释器) - 在终端窗口打开时与之交互,支持命令行历史记录和编辑。编辑使用两种广泛使用的文本编辑器之一的组合键,这些编辑器已在Unix / Linux平台上提供30年或更长时间。默认编辑器模拟来自名为Emacs的编辑器。使用编辑器,您可以在提交命令之前轻松更改命令,或者检索以前的命令以用作新命令的模板。
可以在以下位置找到对默认编辑命令的快速参考:
List of default Mac OS X command-line editing bash keyboard shortcuts
事实上,Bash shell还是有很多东西 - 或者任何Linux / Unix命令行解释器。有关完整的参考手册,请参阅:
此外,在Mac OS X,Linux或Unix上,“man”命令将显示几乎所有可用命令的帮助文档以及基本操作系统的许多其他功能。要了解更多信息,请在命令提示符处输入以下内容:
man man