我注意到一些命令也包含在 e- 和 f- 版本中,例如 grep、egrep、fgrep 和其他一些命令。
如果特定命令应具有 e 或 f 版本,是否有某种模式或命名约定?
有一个关于这一点的线索,例如,man grep
这也是man fgrep
和man egrep
- 通常具有微小变化的工具会为所有变化提供一个手册页,并相互解释它们:
此外,还有两个变体程序 egrep 和 fgrep 可用。
egrep
与 相同grep -E
。fgrep
与 相同grep -F
。 不推荐直接调用 egrep 或 fgrep,但提供它是为了允许依赖它们的历史应用程序不加修改地运行。
据推测,fgrep一样和egrep的曾经标准化的名字,但如果你再往下看手册页注意,-E
并且-F
是“POSIX指定”,暗示这种标准化改变了方向,但(如上面所述),向后兼容性得以保持。
关于程序是否“应该”有变体的话题 - 不,没有标准。但是由于链接的轻量级特性,有很多程序可以这样做(请参阅ln
- 忽略符号链接)。