From a14d003783977c09aee3ff70df78291020079d09 Mon Sep 17 00:00:00 2001 From: xking Date: Sun, 11 Sep 2022 22:09:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20glob=20=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- glob.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 glob.md diff --git a/glob.md b/glob.md new file mode 100644 index 0000000..225f734 --- /dev/null +++ b/glob.md @@ -0,0 +1,38 @@ +## glob 简介 + +`glob` 是用于匹配符合指定模式的文件集合的一种语言, 类似于正则表达式, 但更加简单。 + +**Update-09-22:** 前两天阮一峰老师更新了他的博客,内容讲的就是 `Glob`, 强烈推荐。 + +- [命令行通配符教程 - 阮一峰](https://links.jianshu.com/go?to=http%3A%2F%2Fwww.ruanyifeng.com%2Fblog%2F2018%2F09%2Fbash-wildcards.html) + +## glob 语法 + +`glob` 的语法很简单: + +| 通配符 | 描述 | 例子 | 匹配 | 不匹配 | +| -------------- | ------------------------------------ | ------------------------- | ----------------------------------------- | --------------------------------- | +| `*` | 匹配任意数量的任何字符,包括无 | `Law*` | `Law`, `Laws`, `Lawyer` | `GrokLaw`, `La`, `aw` | +| `?` | 匹配任何 **单个** 字符 | `?at` | `Cat`, `cat`, `Bat`, `bat` | `at` | +| `[abc]` | 匹配括号中给出的一个字符 | `[CB]at` | `Cat`, `Bat` | `cat`, `bat` | +| `[a-z]` | 匹配括号中给出的范围中的一个字符 | `Letter[0-9]` | `Letter0`, `Letter1` … `Letter9` | `Letters`, `Letter`, `Letter10` | +| `[!abc]` | 匹配括号中未给出的一个字符 | `[!C]at` | `Bat`, `bat`, `cat` | `Cat` | +| `[!a-z]` | 匹配不在括号内给定范围内的一个字符 | `Letter[!3-5]` | `Letter1`… | `Letter3` … `Letter5`, `Letterxx` | +| `{a..z}` | 匹配括号中给出的一个字符,等同于[abc] | `{CB}at` | `Cat`, `Bat` | `cat`, `bat` | +| `{start..end}` | 会匹配连续范围的字符 | `d{a..d}g` | `dag`, `dbg`, `dcg`, `ddg` | | +| | | `.{mp{3..4},m4{a,b,p,v}}` | `.mp3` `.mp4` `.m4a` `.m4b` `.m4p` `.m4v` | | + +## 4. 注意事项 + +通配符有一些使用注意点,不可不知。 + +**(1)通配符是先解释,再执行。** + +Bash 接收到命令以后,发现里面有通配符,会进行通配符扩展,然后再执行命令。 + + + +> 作者:永往直前 +> 链接:https://www.jianshu.com/p/d7a97b17ee5a +> 来源:简书 +> 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 \ No newline at end of file