![¿Dónde está el script para el comando alias en Linux?](https://rvso.com/image/134425/%C2%BFD%C3%B3nde%20est%C3%A1%20el%20script%20para%20el%20comando%20alias%20en%20Linux%3F%20.png)
Quiero agregar un argumento al script de alias de bash para poder ejecutarlo
alias -p l='ls -l'
y se agregaría a mi .zshrc de forma permanente. Pero no puedo localizar el script de shell para alias.
Lo intenté whereis alias
, pero sin suerte. Incluso man alias
muestra que el alias no tiene entrada.
Miré /usr/bin, /usr/share/local/bin
pero sin suerte. ¿Alguien puede señalar la ubicación?
EDITAR: También intenté buscar en todas las rutas posiblesls $(echo $PATH| tr ':' '\n') | grep alias
Respuesta1
alias
es un comando incorporado, por lo que no aparece como script en ningún archivo ni como una función. El type
comando mostrará esto:
$ type alias
alias is a shell builtin
Pero aún puedes anularlo. Una función con el mismo nombre enmascarará la función incorporada, a menos que se llame explícitamente con la builtin
función incorporada.
Entonces, algo como esto debería funcionar:
alias() {
if [ "$1" = "-p" ]; then
echo "-p was given";
shift;
fi;
builtin alias "$@";
}
Si desea imprimir la misma asignación de alias en un archivo, debe tener cuidado de citarlo correctamente, para que se pueda utilizar como entrada al shell.
Algo como esto podría funcionar (agregado justo después de shift
en la función), pero pruébelo:printf "alias %q\n" "$@" >> ~/my.alias.file
En cuanto al problema de Bash vs. Zsh, creo que lo anterior funciona con ambos, pero no soy un experto en Zsh.
Por cierto, es posible que también desees tener en cuenta que Bash alias
ya tiene una -p
opción help alias
que dice:
Options:
-p print all defined aliases in a reusable format
No sé si sirve de algo, ya que el comportamiento predeterminado de alias
sin argumentos también es imprimir todos los alias en un formato reutilizable.
Respuesta2
Lo más probable es que su alias
comando sea un shell integrado, no un script. Puedes verificar esto usando el type
comando:
user@host:~$ type alias
alias is a shell builtin
Para obtener documentación sobre la alias
función incorporada, consulte la bash
página de manual:
man bash
Para hacer que un alias sea persistente, normalmente agregaría el comando a uno de sus archivos de perfil de Bash; probablemente su ~/.bashrc
archivo, por ejemplo:
user@host:~$ echo "alias l='ls -l'" >> ~/.bashrc
Respuesta3
Por lo que puedo decir, zsh
no admite alias persistentes.
Si te gustan los alias persistentes, te recomiendo que consulteshttp://schilytools.sourceforge.net/man/man1/bosh.1.htmlpara una implementación de alias con disponibilidad persistente.
Para otros shells, los alias solo se pueden escribir como comandos de alias dentro del .*shrc
archivo relacionado.
Respuesta4
Estoy trabajando principalmente con bash y tengo mis alias en .bashrc.
Está ubicado en mi directorio de inicio en /home/myuser/.bashrc