Digamos que quiero modificar el comportamiento original de la ls
herramienta de esta manera:
$ ls
Hello World
file1 file2 ...
¿Cómo puedo hacer esto?
Al ejecutar, ls
me gustaría ejecutar otro comando, digamos echo "Hello World!"
.
La solución rápida que veo es usar un alias:
alias orig_ls="ls"
alias ls='echo "Hello World!"'
Sin embargo, esta no es una solución real, ya que cuando la ejecute orig_ls
saldrá "Hello World!"
.
bash
shell
command-line
alias
Ionică Bizău
fuente
fuente
Respuestas:
A veces, un alias no es lo suficientemente poderoso como para hacer fácilmente lo que quieres, así que aquí hay una manera sin usarlos.
En algunos archivos que se obtienen cuando se inicia su shell (por ejemplo
.bashrc
), agregue la siguiente función:A diferencia de un alias, una función puede recurrir. Por eso
command ls
se usa en lugar dels
; le dice a su shell que use la función real enls
lugar de la función que acaba de definir.fuente
command
alternativa para OS X?command
que no funcionó: / No tengo idea y no tengo una Mac para probarlo, lo siento.No debes olvidarte de llamar
ls
:fuente
&
hecho, pero no entiendo el argumento que haces de eso.