通配符命令简介: 匹配符合相关条件的符号,匹配文件名查找。 通配符类型: *:匹配任意长度的任意字符 ?:匹配任意单个字符 []:匹配指定范围内的任意单个字符 [^]:匹配指定范围之外的任意单个字符 [:space:]:空白字符 [:punct:]:标点符号 [:lower:]:小写字母 [:upper:]:大写字母 [:alpha:]:大小写字母 [:digit:]:数字 [:alnum:]:数字和大小写字母 !!注意!! 在grep sed awk 等命令中使用通配符,需要加"[]" ---------------------------------------- 通配符命令实例练习: 1、创建a123,cd6,c78m,cl my,m.z,k 67,8yu,789等文件:注意,以上是以逗号为分隔符, 其余都是文件名组成部分。 [root@xuelinux test1]# touch a123 cd6 c78m 'cl my' m.z 'k 67' 8yu 789 [root@xuelinux test1]# ls -l 总用量 0 -rw-r--r--. 1 root root 0 10月 11 14:34 789 -rw-r--r--. 1 root root 0 10月 11 14:34 8yu -rw-r--r--. 1 root root 0 10月 11 14:34 a123 -rw-r--r--. 1 root root 0 10月 11 14:34 c78m -rw-r--r--. 1 root root 0 10月 11 14:34 cd6 -rw-r--r--. 1 root root 0 10月 11 14:34 cl my -rw-r--r--. 1 root root 0 10月 11 14:34 k 67 -rw-r--r--. 1 root root 0 10月 11 14:34 m.z 2、显示所有以a或者m开头的文件: ls -l [am]* [root@xuelinux test1]# ls -l [am]* -rw-r--r--. 1 root root 0 10月 11 14:34 a123 -rw-r--r--. 1 root root 0 10月 11 14:34 m.z 3、显示所有文件名中包含了数字的文件: ls -l *[0-9]* 或者ls -l *[[:digit:]]* [root@xuelinux test1]# ls -l *[0-9]* -rw-r--r--. 1 root root 0 10月 11 14:34 789 -rw-r--r--. 1 root root 0 10月 11 14:34 8yu -rw-r--r--. 1 root root 0 10月 11 14:34 a123 -rw-r--r--. 1 root root 0 10月 11 14:34 c78m -rw-r--r--. 1 root root 0 10月 11 14:34 cd6 -rw-r--r--. 1 root root 0 10月 11 14:34 k 67 4、显示所有以数字结尾且文件名中不包含空白符的文件: ls -l *[^[:space:]]*[0-9] 此命令无法精确排除,所以通配符不能完美的匹配此类情况。 [root@xuelinux test1]# ls -l *[^[:space:]]*[0-9] -rw-r--r--. 1 root root 0 10月 11 14:34 789 -rw-r--r--. 1 root root 0 10月 11 14:34 a123 -rw-r--r--. 1 root root 0 10月 11 14:34 cd6 -rw-r--r--. 1 root root 0 10月 11 14:34 k 67 此文件名按道理是不应该被匹配的 5、显示文件名中包含了非字母或数字的特殊符号的文件: ls -l *[^[:alnum:]]* [root@xuelinux test1]# ls -l *[^[:alnum:]]* -rw-r--r--. 1 root root 0 10月 11 14:34 cl my -rw-r--r--. 1 root root 0 10月 11 14:34 k 67 -rw-r--r--. 1 root root 0 10月 11 14:34 m.z