linux shell常用通配符(wildcard)

本文只是自己记录方便偶尔查阅,没有任何干货或阅读价值...

shell常用的通配符就几个

1
2
3
4
5
* 匹配0至任意多个字符
? 匹配x个任意字符
[] 匹配[]内部的字符
[-] 匹配范围
{} 匹配组合

touch {a,b,abc}.{sh,txt}; ll

1
2
3
4
5
6
7
total 0
-rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.sh
-rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.txt
-rw-r--r-- 1 jsonz staff 0B 3 30 15:59 abc.sh
-rw-r--r-- 1 jsonz staff 0B 3 30 15:59 abc.txt
-rw-r--r-- 1 jsonz staff 0B 3 30 15:59 b.sh
-rw-r--r-- 1 jsonz staff 0B 3 30 15:59 b.txt

    • 1
      2
      3
      4
      5
      6
      7
      8
      ➜  glob ll a*
      -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.sh
      -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.txt
      -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 abc.sh
      -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 abc.txt
      ➜ glob ll a*.txt
      -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.txt
      -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 abc.txt
  1. ?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ➜  glob ll ?.*
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.sh
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.txt
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 b.sh
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 b.txt
    ➜ glob ll ?.txt
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.txt
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 b.txt
    ➜ glob ll ???.*
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 abc.sh
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 abc.txt
  2. [] [-]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ➜  glob touch z.sh
    ➜ glob ll [ab].sh
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.sh
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 b.sh
    ➜ glob ll [a-c]*
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.sh
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.txt
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 abc.sh
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 abc.txt
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 b.sh
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 b.txt
  3. {} {..}

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ➜  glob ll {a,abc}.{sh,txt}
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.sh
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 a.txt
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 abc.sh
    -rw-r--r-- 1 jsonz staff 0B 3 30 15:59 abc.txt
    ➜ glob touch {h..o}.js
    ➜ glob ll *.js
    -rw-r--r-- 1 jsonz staff 0B 3 30 16:10 h.js
    -rw-r--r-- 1 jsonz staff 0B 3 30 16:10 i.js
    -rw-r--r-- 1 jsonz staff 0B 3 30 16:10 j.js
    -rw-r--r-- 1 jsonz staff 0B 3 30 16:10 k.js
    -rw-r--r-- 1 jsonz staff 0B 3 30 16:10 l.js
    -rw-r--r-- 1 jsonz staff 0B 3 30 16:10 m.js
    -rw-r--r-- 1 jsonz staff 0B 3 30 16:10 n.js
    -rw-r--r-- 1 jsonz staff 0B 3 30 16:10 o.js

glob

更多