Existe uma pista sobre isso em, por exemplo, man grep
, que também é man fgrep
e man egrep
- muito frequentemente, ferramentas com pequenas variações como essa terão uma página man para todas as variações, explicando-as em relação um ao outro:
In addition, two variant programs egrep and fgrep are available.
egrep
is the same asgrep -E
.fgrep
is the same asgrep -F
. Direct invocation as either egrep or fgrep is deprecated, but is provided to allow historical applications that rely on them to run unmodified.
Presumivelmente, fgrep e egrep já foram nomes padronizados, mas se você olhar mais abaixo na página man note que -E
e -F
são "especificados por POSIX", o que implica mudança de padronização, mas (como dito acima) , compatibilidade retroativa é mantida.
No tópico de se os programas 'deveriam' ter variantes - não, não há padrão. Mas existem muitos programas que o fazem graças à natureza leve dos links (veja ln
- ignorar links simbólicos).