在linux中使用ls、cp、mv、rm等命令时可以使用文件通配符匹配操作多个文件。
匹配模式
*:匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定范围内的任意单个字符(文件通配不区分字母的大小写)
[^]:匹配非制定范围内的任意单个字符
特殊格式
[[:upper:]] 匹配任意单个大写字母
[[:lower:]] 匹配任意单个小写字母
[[:alnum:]] 匹配任意单个数字和字母
[[:digit:]] 匹配任意单个数字
[[:alpha:]] 匹配任意单个字母
[[:punct:]] 匹配任意单个标点符号
[[:space:]] 匹配空格
练习1:显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现一位任意字符的文件或目录;ls -d /var/l?[[:lower:]]
练习2:显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;ls -d /etc/[0-9]*[^0-9]
ls -d /etc/[[:digit:]]*[^[:digit:]]
练习3:显示/etc目录下,以非字母开头,后面跟一个字母及其它任意长度任意字符的文件或目录;ls -d /etc/[^[:alpha:]][[:alpha:]]*
练习4:复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/test目录;cp -r /etc/m*[^0-9] /tmp/test
练习5:复制/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件或目录至/tmp/man/目录下;cp -r /usr/share/man/man[0-9] /tmp/man/
练习6:复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/conf.d/目录下;cp -r /etc/[mnrp]*.conf /tmp/conf.d/