Linux命令通配符

Linux命令通配符教程

Linux 中,有一套被称作通配符的专用符号,这些通配符可以搜索并匹配文件名的一部分,从而大大简化了文件名的输入。

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 + 其他

Linux *号通配符

语法

ls xxx*

案例

我们使用 * 号通配符,查看 /etc 下面的文件,具体命令如下:

ls /etc/*.d

运行后,终端输出如下:

142_Linux命令通配符.png

我们看到,我们使用了 * 号通配符实现了匹配。

Linux []号通配符

语法

ls xxx[aa]xx

案例

我们使用 [] 号通配符,查看 /etc 下面的文件,具体命令如下:

ls -d /etc/[mnrp]*.conf

运行后,终端输出如下:

143_Linux命令通配符.png

我们看到,我们使用了 [] 号和 * 号通配符实现了匹配。

Linux *号通配符批量删除文件

语法

rm -rf xxx*

案例

我们首先,使用 touch 命令,批量创建几个文件,具体命令如下:

touch /tmp/haicoder1 /tmp/haicoder2 /tmp/haicoder3 /tmp/haicoder4

运行后,终端输出如下:

144_Linux命令通配符.png

现在,我们使用 ls 命令加上通配符,查看这些文件,具体命令如下:

ls /tmp/haicoder*

运行后,终端输出如下:

145_Linux命令通配符.png

我们看到,我们使用了 * 通配符列出了所有符合条件的文件,现在,我们再次使用通配符,删除所有符合条件的文件,具体命令如下:

rm -rf /tmp/haicoder*

运行后,终端输出如下:

146_Linux命令通配符.png

删除完成后,我们再次使用 ls 命令,查看当前文件夹下面的所有文件,具体命令如下:

ls /tmp/haicoder*

运行后,终端输出如下:

147_Linux命令通配符.png

我们看到,所有的 haicoder 开始的文件都被我们使用了通配符删除了。

Linux命令通配符总结

在 Linux 中,有一套被称作通配符的专用符号,这些通配符可以搜索并匹配文件名的一部分,从而大大简化了文件名的输入。


  1. :digit: ↩︎