linux文件名通配符:* ? []

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux文件名通配符:* ? []相关的知识,希望对你有一定的参考价值。

   通配符命令简介:

      匹配符合相关条件的符号,匹配文件名查找。


  通配符类型:

      *:匹配任意长度的任意字符

       ?:匹配任意单个字符

       []:匹配指定范围内的任意单个字符

       [^]:匹配指定范围之外的任意单个字符

       [:space:]:空白字符

       [:punct:]:标点符号

       [:lower:]:小写字母

       [:upper:]:大写字母

       [:alpha:]:大小写字母

       [:digit:]:数字

       [:alnum:]:数字和大小写字母

   

通配符命令实例练习:

  1、创建a123,cd6,c78m,cl my,m.z,k 67,8yu,789等文件:注意,以上是以逗号为分隔符,

  其余都是文件名组成部分。

 [[email protected] test1]# touch a123 cd6 c78m ‘cl my‘ m.z ‘k 67‘ 8yu 789

  [[email protected] 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]*

[[email protected] 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:]]*

[[email protected] 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]  此命令无法精确排除,所以通配符不能完美的匹配此类情况。

[[email protected] 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:]]*

[[email protected] 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


本文出自 “学linux历程” 博客,请务必保留此出处http://woyaoxuelinux.blog.51cto.com/5663865/1860662

以上是关于linux文件名通配符:* ? []的主要内容,如果未能解决你的问题,请参考以下文章

Linux文件名匹配之通配符使用

linux下使用通配符批量删除文件

linux文件名匹配——通配符使用

linux文件名通配符:* ? []

linux文件属性特殊符号通配符通配符与正则的区别

Linux 文件通配符