Linux文件名匹配

globbing:文件名通配(整体文件名统配,而非部分)

  匹配模式,无字符

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

      pa*(pa开头),*pa*(pa在中间),*pa(pa结尾),*p*a*(p和a夹在中间)

    ?:匹配任意单个字符

      pa?(pa之后的一个字符),??pa(pa之前的两个),p?a(pa中间的字符),p?a?(p之后和a之后单个字符)

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

      [a-z](匹配所有字母字符),[0-9](匹配所有数字),[a-z0-9]匹配所有字母和数字字符

      [[:upper:]]    所有大写字母

      [[:lower:]]     所有小写字母

      [[:alpha:]]     所有字母

      [[:digit:]]       所有数字

      [[:alnum:]]    所有数字和字母

      [[:space:]]    所有空白字符

      [[:punct:]]     所有标点字符

      pa[0-9[]0-9](pa之后两个数字),2[0-9][0-9](匹配200-299之间的数字)

     [^]:匹配制导范围外的任意单个字符   

练习1  显示/var/log目录所有以1开头,以一个小写字母结尾,中间出现任意字符的文件或目录

    ls -d /var/1?[[:lower:]]

练习2 显示/etc目录下,以文艺一位数字开头,且以非字母结尾的文件或目录

    ls -d /etc//[0-9]*[^0-9]

练习3 复制/etc目录下,所有以m开头,以非数字的文件或目录至/tmp/magedu.com目录

    cp -r /etc/m*[^0-9] /tmp/magedu.com/

练习4 复制/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件至/tmp/man/目录下

    cp -r /usr/share/man/man[0-9] /tmp/man/

练习5 复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/conf.d/目录下

    cp -r /etc/[mnrp]*.conf /tmp/conf.d/

猜你喜欢

转载自www.cnblogs.com/ymkdxw/p/11697333.html