• Shell通配符用法分析

    在 Bash 中,如果需要模糊匹配文件名或目录名,就要用到通配符。通过表 1 介绍一下常用的通配符。

    表 1 通配符
    通配符 作 用
    ? 匹配一个任意字符
    * 匹配 0 个或任意多个任意字符,也就是可以匹配任何内容
    [] 匹配中括号中任意一个字符。例如,[abc] 代表一定匹配一个字符,或者是 a,或者是 b,或 者是 c
    [-] 匹配中括号中任意一个字符,- 代表一个范围。例如,[a-z] 代表匹配一个小写字母
    [^] 逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9] 代表匹配一个不是数字的字符

    举几个例子:

    [root@localhost ~]# cd /tmp/
    [root@localhost tmp]# rm -rf *
    #进入临时目录,删除所有文件
    #这个也是通配符,代表当前目录中的所有文件
    [root@localhost tmp]# touch abc
    [root@localhost tmp]# touch abcd
    [root@localhost tmp]# touch 012
    [root@localhost tmp]# touch 0abc
    #建立几个测试文件
    [root@localhost tmp]# ls *
    012 0abc abc abed
    #"*"代表所有的文件
    [root@localhost tmp]# ls ?abc
    0abc
    #"?"匹配任意一个字符,所以会匹配 0abc,但是不能匹配 abc,因为"?"不能匹配空
    [root@localhost tmp]# ls [0-9]* 012 0abc
    #匹配任何以数字开头的文件
    [root@localhost tmp]# ls [^0-9]* abc abcd
    #匹配不以数字开头的文件

更多...

加载中...