记录我的成长吧~

推荐链接:

 

glob风格:文件名通配


globbing:文件名通配(整体文件名匹配,而非部分)
  文件的通配机制:编写一种匹配模式,能够实现对多个文件名进行通配;

匹配模式:元字符 
  元字符:一个字符出现以后,它并不表示文件本身,而是用来匹配一定范围内的或者指定符合条件的字符;

  *:配置任意长度的任意字符
    pa*,*pa*,*pa,*p*a
      pa,paa*,passwd
  ?:匹配任意单个字符
    pa?, ??pa, p?a, p?a?
      pa, paa, passwd     
  []:匹配指定范围内的任意单个字符
    有几种特殊格式:
      [a-z],[A-Z],[0-9],[a-z09] 默认情况下不区分大小写
      [[:upper:]]:所有大写字母
      [[:lower:]]:所有小写字母
      [[:alpha:]]:所有字母
      [[:digit:]]:所有数值
      [[:alnum:]]:所有字母和数字
      [[:space:]]:所有空白字符
      [[:punct:]]:所有标点符号
        ]# touch p,a
        ]# ls p[[:punct:]]a
        ]# touch p\ a
        ]# ls ?[[:space:]]?

    pa[0-9][0-9],2[0-9][0-9]
  [^]:匹配指定范围外的任意单个字符
    [^[:upper:]]
    [^0-9]
    [^[:alnum:]]:所有非数字和字母的
练习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/[^a-z][a-z]*
练习4:复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/mageu.com目录;
  ~]# mkdir /tmp/magedu.com
  ~]# cp -r /etc/m*[^0-9] /tmp/magedu.com/
练习5:复制/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件或者目录至/tmp/man/目录下;
  ls /usr/share/man/man*[0-9] /tmp/man
练习6:复制/etc目录下,所有以.conf结尾,且以m,n,rp开头的文件或目录至/tmp/conf.d目录下;
  ~]# ls -d /etc/[mnrp]*.conf /tmp/conf.d/

  注意:文件名中包括空白字符就需要\转移来匹配
练习

 

转载请注明出处:http://www.cnblogs.com/jasperhsu/p/5079297.html

posted on 2015-12-26 23:29  徐长伟  阅读(371)  评论(0编辑  收藏  举报