Preste atenção nas tags dessa pergunta. Esta resposta é a correta, dado que a versão de grep
incluída no CentOS 6 está abaixo da versão 2.11
Eu não acredito que você possa fazer isso usando apenas um alias (pelo menos não na forma que você escreveu - veja @ resposta de Graeme para uma sintaxe alternativa).
NOTA: Eu também mencionarei aqui que a solução da Graeme, embora correta, não funciona no CentOS 5 & 6. Confirmei isso e, de fato, parece ser um problema com a versão de grep
(2,11 ou mais) que acompanha essas distros. O problema parece estar com grep
não, por padrão, pesquisando STDIN quando nenhum argumento de caminho é fornecido com a opção -r
. Executar grep -rnIi --color "string"
apenas trava indefinidamente, tentando pesquisar STDIN.
Os aliases não podem receber argumentos sendo passados para eles. Eles são mais sinônimos de uma macro onde podem ser expandidos pelo shell para outra coisa.
$ alias l='ls -l'
Isso pode ser usado assim:
$ ll
-or-
$ ll somedir
Mas somedir
não é passado para ll
, em vez disso, ll
é expandido para ls -l
e, em seguida, substitui ll
em seu comando.
Voltar para sua pergunta
Então você pode usar uma função no shell. Funções podem levar argumentos.
$ function mygrep { grep -rnIi "$1" . --color; }
Você então usa assim:
$ mygrep "blah"