我尝试了这样的:
alias fdi 'find . -type d -iname "*\!^*"'
但这只能查找作为parameter passing的确切名称。
fdi abc
只会输出:
./d/abc
不是这个:
./d/greabcyup
我不只是寻找确切的名字。 它也应该显示./d/greabcyup
更新:我做到了
echo $0
tcsh的
这是c-shell或tcsh?
我简单地用orielly lunix来检查dbl !^
是本命令行中的第一个单词,所以我不认为它正在做你想要的。 你可以用dbl从cmd-line中检查这个理论,用echo abc def !^
。 (我没有一个方便的csh)。
但很明显,当你创建别名时,它不会得到第一个单词(别名)或别名中嵌入的别名(find)的第一个单词。 这可能是关于csh评估的顺序。
一般来说,大多数shell(不仅仅是csh)中的别名都不能带参数。 它将在最后附加任何包含在调用中的内容。 所以你的别名扩展,与ABC的论点
find . -type d -iname abc
结果你得到,支持。 (你可能会看到一些有用的打开csh调试,通过改变你的顶部哈希爆炸线到#!/bin/csh -vx
)
这就是为什么其他shell有功能,
function fdi() { find . -type d -iname "$@" }
如果因为策略而无法使用其他shell,(bash,ksh和zsh都是强大的编程语言),并且您将定期使用csh,那么一定要找到一份“The Unix C shell Field Guide ,盖尔和保罗·安德森。 一本非常好写的书。
IHTH。