1、文件通配符
*:匹配零个或多个字符
?:匹配任何单个字符
~:当前用户家目录
~admin:用户admin家目录
~+:当前工作目录
~-:前一个工作目录
[0-9]:匹配任意数字
[a-z]:匹配任意小写字母
[A-Z]:匹配任意大写字母
[wang]:匹配列表中的任何一个字符
[^wang]:匹配列表中的所有字符以外的字符
预定义的字符类:man 7 glob
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]:任意大写字母
[:alpha:]:任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
2、实例
实例1:显示/etc/目录下以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录
ls /etc/[^[:alpha:]][[:alpha:]]*
一开始没显示出来,是因为文件夹里面没有符合条件的,自己构建一个就行了
如果要单独显示文件夹,加上-d选项就行了
ls -d /etc/[^[:alpha:]][[:alpha:]]*
实例2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
cp /etc/p*[^[:digit:]] /tmp/mytest1
同样,如果只想复制目录要加-d,最好也加上-r递归复制
实例3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
这里用到了转换命令tr
cat /etc/issue | tr '[:lower:]' '[:upper:]' >> /tmp/issue.out