Aliases no bash não podem processar argumentos. Se você precisar processar um argumento, use uma função:
ff () { find . -name "*$1*" -ls ; }
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]