Linux别名问题

时间:2011-04-08 21:20:18

标签: linux alias arguments

我想为这个命令“rmi”创建一个别名,这样如果我执行

rmi File.txt

它实际上会执行

ls * | grep -v File.txt | xargs rm -rf

基本上我想重新排序参数。

4 个答案:

答案 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)