我认为BSD工具有不同的风格,例如,BSD ls工具在FreeBSD、OpenBSD和NetBSD (甚至在macOS上)上不是同一个工具。
请注意,“不同口味”指的是它们以不同的方式工作(例如: FreeBSD上的BSD FreeBSD工具可能接受-A标志,而在OpenBSD上可能不接受-A标志)。
但是,GNU工具也有多种风格吗?例如,GNU ls、GNU bash和GNU nano工具在所有操作系统上的工作方式都完全相同吗?
发布于 2019-03-23 09:28:04
ls实用程序在所有BSD上都接受-A选项。这是一个标准的POSIX选项。
基本的BSD工具由每个BSD项目独立开发和维护,但有时在项目之间共享一些实现细节(例如解决bug或实现新特性的方法,有时甚至实现GNU扩展)。
GNU工具,如coreutils、nano编辑器和bash shell (这是三个单独的项目)是作为自己的项目单独开发和维护的。因此,不同的实现不太可能出现。
但是,这些工具的版本之间仍然存在差异,您通常不能期望bash shell (例如,在一个Unix上)将与在另一个Unix上的版本完全相同。此外,GNU工具的修改变体可能出现在某些环境中,这种环境并不完全支持所有特性,或者支持在Linux上不常见的特性。
最明显的例子是macOS,它附带了bash外壳的3.2版,而最新的版本是5.0.x。
您可以或应该期望的是,如果基本实用程序是标准POSIX实用程序的话,它们应该按照POSIX标准的要求工作,而不管这些实用程序是GNU、BSD还是其他一些实现。同样,这不包括对这些实用程序的非标准扩展,就像大多数GNU coreutils实用程序所支持的任何“长选项”一样,这些工具在其他实现中可能支持,也可能不支持,并且可能根据实用程序的版本而有所不同。
https://unix.stackexchange.com/questions/508128
复制相似问题