首页 > 编程笔记

Shell通配符的使用

当在 Shell 下执行命令程序时,命令程序通常需要使用文件名,而 Shell 提供了特殊字符来帮助快速搜索想要查找的文件名。这些特殊的字符就是“通配符”。

通配符是一类键盘字符,当查找文件夹时,常常使用通配符代替一个或多个真正的字符。注意,通配符允许用户根据字符的模式选择文件名,可以与任意一个以文件名为参数的命令一起使用,并且通配符不但可以在命令行程序中起作用,还可以在 GUI 程序中起作用。

通配符有时也称为元字符,所谓元字符就是描述其他字符(数据)的字符。在 Linux 系统中的常用通配符如表 1 所示。

表 1 常用通配符
字 符 作 用
* 可以匹配 0 个或多个字符(任意字符)
? 匹配任意一个字符(只能是一个)
[ ] 匹配中括号中任意一个字符。例如,[abc] 代表匹配方括号中的任意一个字符,或者是 a,或者是 b, 或者是 c
[-] 匹配中括号中任意一个字符,代表一个范围。例如,[a-z] 代表匹配字符 a~z 范围内的所有字符
[^] 逻辑非,表示匹配不属于中括号内的一个字符。例如,[^0-9] 代表匹配一个不是数字的字符;[^abc] 代表匹配不包括方括号中的字符的所有字符

另外,在 Linux 操作系统中还支持一些特殊通配符,如表 2 所示。

表 2 特殊通配符
特殊通配符 作 用
\ (反斜杠) 转义后面单个字符
' '(单引号) 转义所有字符
" "(双引号) 变量依然生效
"(反引号) 执行命令语句

注意,反斜杠、单引号、双引号和反引号将在后面章节做详细讲解。


【例 1 】查看 sda 开头的所有设备文件。
在终端页面输入命令如下:

[root@bogon ~]# ls /dev/sda*
/dev/sda   /dev/sda1   /dev/sda2


【例 2】查看 sda 后面包含 [0-9] 数字的设备文件。
在终端页面输入命令如下:

[root@bogon ~]# ls /dev/sda[0-9]
/dev/sda1    /dev/sda2

优秀文章