我注意到有些命令也有 e 和 f 版本,例如 grep、egrep、fgrep 和其他一些命令。
如果特定命令应该有 e 或 f 版本,是否有某种模式或命名约定?
答案1
例如,有一个关于这一点的线索man grep
,它也是man fgrep
-man egrep
通常,像这样具有微小变化的工具将为所有变化提供一个手册页,解释它们之间的关系:
此外,还有两个变体程序egrep 和fgrep 可用。
egrep
是相同的grep -E
。fgrep
是相同的grep -F
。 不推荐直接调用 egrep 或 fgrep,但提供它是为了允许依赖它们的历史应用程序不加修改地运行。
据推测, fgrep 和 egrep 曾经是标准化名称,但如果您进一步查看手册页,请注意-E
和-F
是“由 POSIX 指定”,这意味着此标准化改变了策略,但是(如上所述),向后兼容性被维持。
关于程序是否“应该”有变体的话题 - 不,没有标准。但由于链接的轻量级性质,有很多程序可以这样做(请参阅ln
- 忽略符号链接)。