Você pode usar o commandshell interno para ignorar o processo de pesquisa normal e executar o comando fornecido como um comando externo, independentemente de outras possibilidades (embutidos do shell, aliases, etc.). Isso geralmente é feito em scripts que precisam ser portáveis entre sistemas, embora provavelmente seja mais comum usar a abreviação \(como em \rmvez de command rmou ou rm, pois, especialmente, o último pode estar associado a algo não conhecido rm -i).
$ time
real 0m0.000s
user 0m0.000s
sys 0m0.000s
$ command time
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
[--portability] [--format=format] [--output=file] [--version]
[--quiet] [--help] command [arg...]
$
Isso pode ser usado com um alias, assim:
$ alias time='command time'
$ time
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
[--portability] [--format=format] [--output=file] [--version]
[--quiet] [--help] command [arg...]
$
A vantagem disso, por exemplo, alias time=/usr/bin/timeé que você não está especificando o caminho completo para o timebinário, mas retornando ao mecanismo de busca de caminho usual.
O aliascomando em si pode entrar em, por exemplo, ~ / .bashrc ou /etc/bash.bashrc (este último é global para todos os usuários do sistema).
Para o caso oposto (forçando o uso do shell interno, caso haja um apelido definido), você usaria algo como builtin time, que novamente substitui o processo de pesquisa usual e executa o shell interno nomeado. A página de manual do bash menciona que isso geralmente é usado para fornecer cdfuncionalidade personalizada com uma função chamada cd, que por sua vez usa o builtin cdpara fazer a coisa real.
type -a <cmd>.