Digamos que eu queira modificar o comportamento original da ls
ferramenta desta maneira:
$ ls
Hello World
file1 file2 ...
Como posso fazer isso?
Ao executar ls
, gostaria de executar outro comando, digamos echo "Hello World!"
.
A solução rápida que vejo é usar o alias:
alias orig_ls="ls"
alias ls='echo "Hello World!"'
No entanto, essa não é uma solução real, pois quando executarei, orig_ls
ela será exibida "Hello World!"
.
bash
shell
command-line
alias
Ionică Bizău
fonte
fonte
Respostas:
Às vezes, um alias não é poderoso o suficiente para fazer o que você deseja com facilidade, então aqui está uma maneira de usá-lo.
Em algum arquivo que é originado quando o shell é iniciado (por exemplo
.bashrc
), adicione a seguinte função:Ao contrário de um alias, uma função pode ser recursiva. É por isso que
command ls
é usado em vez dels
; Ele diz ao seu shell para usar a função real emls
vez da função que você acabou de definir.fonte
command
alternativa para o OS X?command
, não funcionou: / Não tenho idéia e não tenho um Mac com o qual testá-lo, desculpe.Você não deve esquecer de ligar para
ls
:fonte
&
realmente usar , mas eu não entendo o argumento que você faz disso.