我想为这个命令“rmi”创建一个别名,这样如果我执行
rmi File.txt
它实际上会执行
ls * | grep -v File.txt | xargs rm -rf
基本上我想重新排序参数。
答案 0 :(得分:3)
脚本:
#!/usr/bin/env bash
ls * | grep -v $1 | xargs rm -rf
- 保留为rmi。
-do:chmod a+x rmi
- 然后添加到路径。
答案 1 :(得分:1)
你不能用别名做到这一点。你需要写一个脚本。
答案 2 :(得分:1)
您不需要脚本。您可以编写shell函数来代替别名:
myfunc() {
ls * | grep -v $1 | xargs rm -rf
}
# usage: myfunc <filename>
将其存储在〜/ .bashrc或〜/ .zshrc中,或单独的别名文件中,例如。使用成语
test -f ~/.zaliases && source ~/.zaliases
你的dotrc文件中的。
答案 3 :(得分:1)
感谢您澄清这一点。在tcsh中很简单:
alias rmi 'ls * | grep -v \! | xargs rm -rf'
这应该这样做......
\!
扩展“rmi”
之后的所有参数你也可以用“find”来做这件事。
find . -type f | grep -v \! | xargs rm -rf'
...小心那把斧头! (rm -rf)