Puede usar el command
shell incorporado para omitir el proceso de búsqueda normal y ejecutar el comando dado como un comando externo independientemente de cualquier otra posibilidad (shell incorporado, alias, etc.). Esto a menudo se realiza en scripts que deben ser portables en todos los sistemas, aunque probablemente más comúnmente usando la abreviatura \
(como en \rm
lugar de command rm
o rm
, ya que especialmente este último puede tener un alias a algo que no se conoce 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...]
$
Esto se puede usar con un alias, así:
$ alias time='command time'
$ time
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
[--portability] [--format=format] [--output=file] [--version]
[--quiet] [--help] command [arg...]
$
La ventaja de esto sobre, por ejemplo, alias time=/usr/bin/time
es que no está especificando la ruta completa al time
binario, sino que recurre al mecanismo de búsqueda de ruta habitual.
El alias
comando en sí mismo puede entrar, por ejemplo, ~ / .bashrc o /etc/bash.bashrc (este último es global para todos los usuarios del sistema).
Para el caso opuesto (forzar el uso del shell incorporado en caso de que haya un alias definido), usaría algo como builtin time
, que de nuevo anula el proceso de búsqueda habitual y ejecuta el shell incorporado nombrado. La página de manual de bash menciona que esto a menudo se usa para proporcionar una cd
funcionalidad personalizada con una función llamada cd
, que a su vez usa el incorporado cd
para hacer lo real.
type -a <cmd>
.