任何初学者都知道,在 Bash 下可以通过 *.cpp 匹配目录下所有扩展名为 cpp 的文件,那么,如果我们想匹配目录下所有扩展名不是 cpp 的文件,该怎么做呢?当 extglob 打开的情况下,用这个展开就可以了:

!(*.cpp)

extglob 默认都是打开的,如果没开的话,可以用 shopt 命令打开:

shopt -s extglob