请问这几个通配符该怎么解释

img

>     *   表示匹配任意字符(0个、1个或多个字符 )
    ?   表示匹配任意一个字符 
    []   表示匹配[]范围内的任意一个字符
        [a-z] ---->     a b c d ... z
        [A-Z] ---->    A B C D ... Z
        [0-9] ---->     0  1  2   3 .. 9
        [a-zA-Z0-9] ---->     a..z  A..Z  0..9
        a[1-3]  ---->    a1 a2 a3
        [1-3][a-f]  ---->     1a 1b 1c 1d 1e 1f  2a 2b 2c 2d 2e 2f  3a 3b 3c 3d 3e 3f
        [1-9][0-9]  ---->      10~99 

     !  表示取反

    {}   表示匹配字符串
        {1..9}  ---->    1 2 3 4 5 6 7 8 9
        {a..f}  ---->    a b c d e f 
        {aa,bb,cc}  ---->    aa bb cc 
        aa{bb,cc,dd}  ---->    aabb  aacc  aadd 

自己百度下shell通配符(shell元字符)
ls ???.txt  就是列出任意3个字符 后缀是.txt的文件
fi*.txt  就是以fi开头后面任意字符 后缀.txt的  比如fi.txt fia.txt fiaa.txt.....
ls [fi]*.txt  就是以f开头或者i开头,后面任意字符,后缀是.txt的  比如f.txt fa.txt i.txt ia.txt iab.txt....
ls  [!fi]* 就是列出当前目录下  不以f或者i开头的所有目录和文件
f{a..d}.txt  就是fa.txt fb.txt fc.txt fd.txt