
Supongamos que tengo un alias en el shell bash. ¿Existe un comando simple para imprimir qué comando ejecutará el alias?
Respuesta1
El type
incorporado es útil para esto. No sólo le informará sobre alias, sino también funciones, funciones integradas, palabras clave y comandos externos.
$ type ls
ls is aliased to `ls --color=auto'
$ type rm
rm is /bin/rm
$ type cd
cd is a shell builtin
$ type psgrep
psgrep is a function
psgrep ()
{
ps -ef | {
read -r;
printf '%s\n' "$REPLY";
grep --color=auto "$@"
}
}
type -a cmd
mostrará todos los comandos con ese nombre en orden de precedencia, lo cual es útil para el ls
alias anterior, donde el propio alias llama ls
.
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
Esto le indica que cuando ejecute ls
, /bin/ls
se usará y --color=auto
se incluirá en su lista de argumentos, además de cualquier otro que agregue usted mismo.
Respuesta2
Simplemente escriba alias
mientras se encuentra en el indicador de Shell. Debería generar una lista de todos los alias activos actualmente.
O bien, puede escribir alias [command]
para ver a qué alias específico se le asigna el alias; por ejemplo, si desea saber a qué ls
alias se le asigna el alias, puede hacer alias ls
.
Respuesta3
Me gusta mucho Ctrl+ Alt+ Ecomo aprendí deesta respuesta. "Amplía" la línea de comando actualmente escrita, lo que significa que realiza una expansión de alias (entre otras cosas).
¿Qué significa eso? Convierte cualquier alias, que pueda estar escrito actualmente en la línea de comando, en lo que representa el alias.
Por ejemplo, si escribo:
$ ls
y luego presione Ctrl+ Alt+ E, se convierte en
$ ls --time-style=locale --color=auto
Respuesta4
Podrías usar el which
comando.
Si establece un alias para ls
as ls -al
y luego escribe which ls
, verá:
ls: aliased to ls -al
.