我想写一个别名来快速搜索当前目录中的文件名(不区分大小写)。
以下作品:
alias f='find . -iname $@'
问题是,当我想在搜索表达式中使用wilcards时,我需要引用它们(否则zsh扩展首先处理通配符):
> f podfi*
zsh: no matches found: podfi*
> f "podfi*"
./Podfile
如何在别名中添加引号以便f podfi*
有效?
这些试探措施不起作用:
alias f='find . -iname "$@"'
alias f='find . -iname \"$@\"'
答案 0 :(得分:2)
对于zsh来说这是怎么回事:
% alias f='noglob find . -iname $@'
% f podfi*
./Podfile
% f "podfi*"
./Podfile
%
答案 1 :(得分:2)
function ff () { find . -iname "$2"; GLOBIGNORE="$1"; }
alias f='s="$GLOBIGNORE"; GLOBIGNORE="*"; ff "$s"'
别名会保存GLOBIGNORE
的当前值,将GLOBIGNORE
设置为*
,并调用ff
函数将其保存的GLOBIGNORE
作为ff
第一个参数。 GLOBIGNORE
函数使用unglobled alias参数调用find并恢复f *.tex
./full.tex
./hdr.tex
./main.tex
。用GNU bash测试,版本4.3.30(1) - 发布:
from itertools import count, islice
def gen_url(places=3):
for i in count(1):
yield "{{:0{}d}}".format(places).format(i)
url = "www.testpage.com/"
list_of_urls = [url+c+x+"&show=more" for c in "xyz" for x in islice(gen_url(), 0, 2)]