系统相关
首页 > 系统相关> > linux-别名在Unix中查找目录

linux-别名在Unix中查找目录

作者:互联网

我尝试了类似的东西:

alias fdi 'find . -type d -iname "*\!^*"' 

但这只会查找作为参数传递的确切名称.

fdi abc将仅输出:

./d/abc

不是这个:

./d/greabcyup

我不仅在寻找确切的名字.它还应该显示./d/greabcyup

更新:我做到了

echo $0

tcsh

解决方法:

这是C壳还是tcsh?

我用orielly lunix in a nutshell 进行了dbl-checked,!^的意思是当前命令行中的第一个单词,因此我不认为它在做什么.
您可以通过cmd-line的echo abc def!^来自己检查该理论. (我没有csh可用).

但是很明显,当您创建别名时,它并没有获得别名中嵌入的别名的第一个单词(别名)或第一个单词(查找).这可能与csh的评估顺序有关.

通常,大多数shell中的任何别名(不仅仅是csh)都不能接受参数.它将附加最后包含在调用中的所有内容.因此,您的别名将扩展,其中abc参数为

find . -type d -iname abc

得到的结果将支持这一点. (通过打开csh调试,将您的哈希顶行更改为#!/ bin / csh -vx,您可能会看到一些有用的信息)

这就是为什么其他shell具有功能的原因,

 function fdi() {
     find . -type d -iname "$@"
 }

如果由于政策而不能使用其他外壳程序(bash,ksh,zsh都是强大的编程语言),并且打算定期使用csh,请确保获取《 Unix C Shell领域指南》的副本.盖尔&保罗·安德森.一本非常出色的书.

IHTH.

标签:csh,alias,find,tcsh,linux
来源: https://codeday.me/bug/20191127/2074004.html