alias支持命令行参数
alias通过别名形式,快速执行命令块
env
- zsh
- alias
问题
查找目录下所有文件,在移动文件到目标文件夹中.
error log
mvpbang@mvpbang 八本财经书籍 % alias ffx='find . -type f -print0 |xargs -0 -I {} mv {} ~/Desktop/$1'
mvpbang@mvpbang 八本财经书籍 % ffx 5656
mv: 5656 is not a directory
解决
通过查证文档的结果是,alias根本就不支持传递命令行参数,不过可以变通的解决这个问题,即定义函数。
1.不支持
alias ffx='find . -type f -print0 |xargs -0 -I {} mv {} ~/Desktop/$1'
2.改进
alias ffx='fm(){ find . -type f -print0 |xargs -0 -I {} mv {} ~/Desktop/$1 };fm'
截取自我为方便使用Octopress 撰写Blog而定义的 alias:
alias pn='new() { bundle exec rake new_post["$1"] }; new'
通过定义new()函数来将$1参数传递给别名pn,现在只需执行:
pn 'post title'
就可以新建一篇post了
link