我bash在Fedora 16上使用版本4.2.28.我有extglob选项设置.我试图列出所有匹配*.h或*.cpp使用的文件,ls *(h|cpp)但该命令返回以下内容:
[agnel@damien cadcore]$ ls *(h|cpp)
ls: cannot access *(h|cpp): No such file or directory
Run Code Online (Sandbox Code Playgroud)
我已经验证我当前目录中确实有几个.h和.cpp文件.我做错了什么,或者这可能是一个错误bash或ls?
更新:感谢您的回答.使用*.h *.cpp做我需要的.但是,我仍然想知道为什么extglob不像我预期的那样工作.
扩展的glob *(pattern-list)匹配以下模式列表的0次或更多次出现.它与选项列表中的某个字符串后跟的任意字符串不匹配.你要:
$ ls *.@(h|cpp)
Run Code Online (Sandbox Code Playgroud)
这匹配一些东西,然后是一段时间,然后是"h"或"cpp"