macos - shell :我可以在 mac 中使用类似 linux 的命令样式 `rm tmp/-fr`

标签 macos shell command-line

比如说,我想在 shell 中删除一个 tmp/ 目录。

在 linux(如 ubuntu)中,我可以 rm tmp/-frrm -fr tmp/。但是在mac中,我只能rm -fr tmp/

有什么方法可以配置 mac shell (bash/zsh/...),这样我就可以使用类似 linux 的命令风格:rm tmp/-fr

最佳答案

rm tmp/-fr 中的操作数后有选项是非标准的。 IEEE Std 1003.1-2001 在 12.2 Utility Syntax Guidelines 节中有:

Guideline 9: All options should precede operands on the command line.

GNU 实用程序(大多数 Linux 发行版都使用)的实现者选择添加许多非标准扩展。虽然有时很方便,但使用这些扩展本质上是不可移植的。 MacOS X 有一个源自 BSD 的用户区,它没有大多数非标准 GNU 扩展。如果您希望将来使用非 GNU 系统(例如 BSD、Solaris 或任何其他商业 UNIX),那么坚持实用程序的标准语法并且不习惯任何 GNU 扩展确实是值得的。在使用所有不同的 UNIX 操作系统时,它可以省去很多麻烦。这在编写脚本时尤其真实且重要。在脚本中依赖 GNU 语法会使它们不可移植。

因此,与其在 MacOS X 上安装 GNU coreutils,我的建议是将其用作习惯标准语法(IEEE Std 1003.1、POSIX.2 等)的机会。

关于macos - shell :我可以在 mac 中使用类似 linux 的命令样式 `rm tmp/-fr`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10443271/

相关文章:

macos - 如何在 cocoa 中设置一些 View 的中心

macos - OS X 中我的应用程序的带宽限制

linux - "echo -e"在 su -c 命令中不起作用

arrays - 从两个文件中读取变量并以模式输出到第三个文件

objective-c - 向 NSRunAlertPanel 的按钮添加操作

ios - 重命名伞头

linux - Shell 脚本如果 elif 使用需要建议

python - 无法使用 Django ORM 关闭脚本中的自动提交

java - 在命令行中制作java包

oracle - 显示编码文本的命令行