我正在尝试创建一个别名为tcsh。我想在 ports (FreeBSD ports) 中找到一个程序。
到目前为止,我创建了一个别名,它可以工作,但只能找到以*port_name
.我希望它能够搜索*port_name*
.你能告诉我为什么我的例子不起作用吗?
alias najdi 'echo /usr/ports/*/*\!:1* | sed -e "y/ /\n/"'
。
najdi port_name
finds: *port_name
expected: *port_name*
解决方案: 我切换到这个:(它也不区分大小写)
alias portfind 'cd /usr/ports && make quicksearch name=\!:1 | grep Path'
答案1
在 tcsh 中,扩展!:1*
相当于!:1-$
为了实现你想要的,你需要这样做:
alias najdi 'echo /usr/ports/*/*\!:1-1* | sed -e "y/ /\n/"'
就我个人而言,我更喜欢使用find
而不是 shell 扩展:
alias najdi 'find /usr/ports -type d -maxdepth 2 -name \*\!:1-1\* -print'