我真的不知道在阅读glob (programming)的结果打印下面的命令在shell中,我使用(bash)作为我的shell。鉴于此目录层次结构:为什么glob`* [!t] *`返回名称包含`t`的文件?
/sub2
s.py
t2.txt
nametoname.txt
bees.txt
/sub22
$ echo *[!t]*
bees.txt nametname.txt s.py sub22 t2.txt
在我的理解的参数echo
将扩大到匹配不包含字母T的任何文件名,但结果却完全相反,为什么?
该命令输出所有文件名是包含字母t:
$ echo *[t]*
nametname.txt t2.txt
在前面的命令我只是否定[t]
到[!t]
,然后在我的期望它应该做的第二个命令相反。
你或许应该使用'-name',不'这里-iname',要与水珠的情形相一致严格。 – kojiro
感谢@kojiro,有道理。我编辑过。 – anubhava
然后我可以说'echo * [t] *'将匹配包含至少一个t的任何文件名。 – direprobs