在 Linux 中,有一套被称作通配符的专用符号,这些通配符可以搜索并匹配文件名的一部分,从而大大简化了文件名的输入。
通配符 | 描述 |
---|---|
* | 匹配任意数量的字符。 |
? | 匹配任意一个字符。 |
[] | 匹配括号内的任意一个字符,甚至 [] 中还可以包含用 -(短横线)连接的字符或数字,表示一定范围内的字符或数字。 |
通配符 | 描述 |
---|---|
* | 匹配任意长度的任意字符,可以是 0 个 |
? | 匹配任意单个字符,必须是 1 个 |
[ ] | 匹配指定字符范围内的任意单个字符 |
[a-z,A-Z,0-9] | 匹配所有数字字母,可以不加逗号 |
[a-z] | 表示 a-z,A-Y,表示 a,A,b,B…a。不包含 Z |
[A-Z] | 表示 A,b,B…z,Z。不包含 a |
[a-Z] | 表示所有大小写字母 |
[:upper:] | 所有大写字母 |
[:lower:] | 所有小写字母 |
[:alpha:] | 所有字母,大小写 |
[:digit:] | 所有数字 |
[:alnum:] | 所有数字+字母 |
[:blank:] | 水平空白字符 |
[:space:] | 水平或垂直空白字符 |
[:punct:] | 标点符号 |
[:print:] | 可打印字符 |
[:cntrl:] | 控制(非打印)字符 |
[:graph:] | 图形字符 |
[:xdigit:] | 十六进制字符 |
[^] | 匹配指定字符范围外的任意单个字符 |
[^0-9] | 相当于[[1]] |
[^a-z] | 表示 Z + 其他 |
[^A-Z] | 表示 a + 其他 |
*
号通配符ls xxx*
我们使用 *
号通配符,查看 /etc 下面的文件,具体命令如下:
ls /etc/*.d
运行后,终端输出如下:
我们看到,我们使用了 *
号通配符实现了匹配。
[]
号通配符ls xxx[aa]xx
我们使用 []
号通配符,查看 /etc 下面的文件,具体命令如下:
ls -d /etc/[mnrp]*.conf
运行后,终端输出如下:
我们看到,我们使用了 []
号和 *
号通配符实现了匹配。
*
号通配符批量删除文件rm -rf xxx*
我们首先,使用 touch 命令,批量创建几个文件,具体命令如下:
touch /tmp/haicoder1 /tmp/haicoder2 /tmp/haicoder3 /tmp/haicoder4
运行后,终端输出如下:
现在,我们使用 ls 命令加上通配符,查看这些文件,具体命令如下:
ls /tmp/haicoder*
运行后,终端输出如下:
我们看到,我们使用了 *
通配符列出了所有符合条件的文件,现在,我们再次使用通配符,删除所有符合条件的文件,具体命令如下:
rm -rf /tmp/haicoder*
运行后,终端输出如下:
删除完成后,我们再次使用 ls 命令,查看当前文件夹下面的所有文件,具体命令如下:
ls /tmp/haicoder*
运行后,终端输出如下:
我们看到,所有的 haicoder 开始的文件都被我们使用了通配符删除了。
在 Linux 中,有一套被称作通配符的专用符号,这些通配符可以搜索并匹配文件名的一部分,从而大大简化了文件名的输入。
:digit: ↩︎