以下用于查找文件的别名在 tcsh 中有效,但在 bash 中无效。
alias ff "find . -name '*\!{*}*' -ls"
当我将上面的行放入 .bashrc 中然后获取它时,我得到:
bash-3.2$ source .bashrc
bash: alias: ff: not found
bash: alias: find . -name '*\!{*}*' -ls: not found
现在,如果我定义别名,但在别名后面加上等号,上述错误就会消失,但它不会按预期工作。
alias ff="find . -name '*\!{*}*' -ls"
现在,如果我获取该文件,之前的错误就会消失,但该find
命令无法按预期工作。
bash-3.2$ source .bashrc
bash-3.2$ ff somefile
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
答案1
bash 中的别名无法处理参数。如果您需要处理参数,请改用函数:
ff () { find . -name "*$1*" -ls ; }