wendu 发表于 2018-5-19 15:07:38

Linux 通配符总结

  描述:
  通配符是由shell处理的,它只会出现在 命令的“参数”里(它不用在 命令名称里, 也不用在 操作符上)。当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。总之,通配符 实际上就是一种shell实现的路径扩展功能。在 通配符被处理后, shell会先完成该命令的重组,然后再继续处理重组后的命令,直至执行该命令。
  

  说明:
  以下是常见的通配符:
      *匹配零个或多个字符
               ?匹配任何单个字符
               ~当前用户家目录
              ~username用户家目录
              ~+当前工作目录
              ~-前一个工作目录
               匹配一个数字范围
               :大写和小写字母
               大写字母
      匹配列表中的任何的一个字符
              [^wxc]匹配列表中的所有字符以外的字符
     预定义的字符类: :#man 7 glob
     [:digit:] :任意数字,相当于0-9
     [:lower:] :任意小写字母
     [:upper:]: 任意大写字母
     [:alpha:]: 任意大小写字母
     [:alnum:] :任意数字或字母
     [:space:] :空格
     [:punct:] :标点符号
  

  示例:
  1、显示/var 目录下所有以l 开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
# ls -d /var/test/l**[[:lower:]]
/var/test/l80Ab  

  2 、显示/etc 目录下以任意一位数字开头,且以非数字结尾的文件或目录
# ls -d /etc/test/*[^0-9]
/etc/test/9A1b  

  3 、显示/etc/ 目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
# ls -d /etc/test/[^a-z]*
/etc/test/1ab2  

  4 、显示/etc 目录下所有以m 开头以非数字结尾的文件或目录
# ls -d /etc/m*[^0-9]
/etc/magic      /etc/man.config   /etc/motd
/etc/mailcap    /etc/mime.types   /etc/mtab
/etc/mail.rc    /etc/mke2fs.conf/etc/mtools.conf  

  5 、显示/etc 目录下,所有以.d 结尾的文件或目录
# ls -d /etc/*.d
/etc/bash_completion.d/etc/modprobe.d      /etc/rc6.d
/etc/chkconfig.d      /etc/pam.d         /etc/rc.d
/etc/cron.d             /etc/popt.d          /etc/request-key.d  

  6 、显示/etc 目录下,所有.conf 结尾,且以m,n,r,p 开头的文件或目录
# ls /etc/*.conf
/etc/mke2fs.conf                   /etc/prelink.conf
/etc/mtools.conf                   /etc/readahead.conf
/etc/nfsmount.conf               /etc/request-key.conf  

  结束语:
     本篇内容是本人将上课内容进行总结和整理,由于本人初学Linux,难免会有遗漏,请各位达人多多指教
页: [1]
查看完整版本: Linux 通配符总结