Alias para encontrar um arquivo que não está funcionando no bash

0

O alias a seguir para encontrar um arquivo funciona no tcsh, mas não no bash.

alias ff "find . -name '*\!{*}*' -ls"

Quando eu coloco a linha acima em .bashrc e, em seguida, a fonte eu recebo:

bash-3.2$ source .bashrc
bash: alias: ff: not found
bash: alias: find . -name '*\!{*}*' -ls: not found

Agora, se eu definir o alias, mas colocando um sinal de igual logo após o nome do alias, o erro acima desaparece, mas não funciona como esperado.

 alias ff="find . -name '*\!{*}*' -ls" 

Agora, se eu for o arquivo, o erro anterior desaparece, mas o comando find não funciona como esperado.

 bash-3.2$ source .bashrc
 bash-3.2$ ff somefile
 find: paths must precede expression
 Usage: find [-H] [-L] [-P] [path...] [expression]
    
por Geek 01.09.2014 / 12:26

1 resposta

4

Aliases no bash não podem processar argumentos. Se você precisar processar um argumento, use uma função:

ff () { find . -name "*$1*" -ls ; }
    
por 01.09.2014 / 12:43

Tags