Você não, realmente. Não sem conhecimento externo à página man.
No caso de echo
(e printf
e test
, ...), geralmente é um shell embutido, portanto, você precisará saber disso e ler a documentação do shell.
(E echo
é notoriamente diferente em implementações diferentes, use printf
.)
Na maioria, se não em todos os shells, você pode descobrir se algo está embutido com type command
, por exemplo, type echo
imprimirá echo is a shell builtin
. ( type
é especificado por POSIX mas por exemplo fish também é compatível, pois não é POSIXy como é.) No Bash, você leria man bash
, a documentação on-line ou use o comando interno help
(que é específico do Bash e que você precisa saber existe).
Mesmo que o comando não seja embutido, é possível que existam vários comandos com o mesmo nome, rename
sendo um exemplo famoso (veja . Agora, seu sistema operacional deve ter a man page correta para o utilitário atualmente instalado e, por exemplo, no Debian, o sistema de "alternativas" atualiza as páginas de manual correspondentes também quando as alternativas de comando são alteradas. Mas se você ler uma página de manual on-line , precisará estar ciente disso.
Muitos utilitários têm uma opção de linha de comando como --version
, que pode indicar a implementação desse comando. (Mas nem todos os utilitários têm isso. Eu acho que é um GNUísmo originalmente, então os utilitários GNU têm, assim como aqueles que copiaram o costume.) No caso de rename
, ele funciona para dizer duas coisas diferentes. implementações à parte:
debian$ rename --version
/usr/bin/rename using File::Rename version 0.20
centos$ rename --version
rename (util-linux-ng 2.17.2)
Além disso, seu sistema pode ter um alias ou uma função com o mesmo nome de um utilitário, geralmente para modificar o comportamento do utilitário. Nesse caso, os padrões apresentados em uma página do manual podem não se aplicar. Os aliases para ls
são comuns, assim como os aliases adicionam -i
a rm
ou mv
. Mas type foo
também diria se foo
é um alias ou uma função.