2011-04-08 39 views
0

我想创建此命令“RMI”的别名,这样如果我执行Linux的别名问题

rmi File.txt 

它实际上执行

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

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

+0

您没有提及您使用的是哪个UNIX shell sh,csh,tcsh,bash,zsh,...? – Tilo 2011-04-09 07:02:56

+0

我正在使用tcsh – Jean 2011-04-11 15:19:56

回答

1

你不能用别名做到这一点。你需要写一个脚本。

+1

+1请注意,这不是不可能的,这是不可能的使用别名。这可能是OP的一个不好的术语,因为别名具有特定的含义。 – corsiKa 2011-04-08 21:27:04

+0

你不需要脚本,你可以编写一个shell函数,就像编写别名一样简单。 – EdvardM 2011-04-09 06:53:06

3

脚本:

#!/usr/bin/env bash 
ls * | grep -v $1 | xargs rm -rf 

- 保存这个作为RMI。

待办事宜:chmod a+x rmi

- 然后添加到路径。

1

你不需要脚本。取而代之的别名,你可以写一个外壳函数:

myfunc() { 
    ls * | grep -v $1 | xargs rm -rf 
} 

# usage: myfunc <filename> 

其存储在〜/ .bashrc或者〜/ .zshrc,或单独的别名文件,例如。使用成语

test -f ~/.zaliases && source ~/.zaliases 

在你的dotrc文件中。

1

感谢澄清这一点。在tcsh中很容易:

alias rmi 'ls * | grep -v \! | xargs rm -rf' 

这应该这样做...

\! 

扩展以下 “RMI”

你也可以使用 “查找” 要做到这一点的所有参数..

find . -type f | grep -v \! | xargs rm -rf' 

...小心那个斧头! (rm -rf)