Shell通配符的使用
当在 Shell 下执行命令程序时,命令程序通常需要使用文件名,而 Shell 提供了特殊字符来帮助快速搜索想要查找的文件名。这些特殊的字符就是“通配符”。
通配符是一类键盘字符,当查找文件夹时,常常使用通配符代替一个或多个真正的字符。注意,通配符允许用户根据字符的模式选择文件名,可以与任意一个以文件名为参数的命令一起使用,并且通配符不但可以在命令行程序中起作用,还可以在 GUI 程序中起作用。
通配符有时也称为元字符,所谓元字符就是描述其他字符(数据)的字符。在 Linux 系统中的常用通配符如表 1 所示。
另外,在 Linux 操作系统中还支持一些特殊通配符,如表 2 所示。
【例 1 】查看 sda 开头的所有设备文件。
在终端页面输入命令如下:
【例 2】查看 sda 后面包含 [0-9] 数字的设备文件。
在终端页面输入命令如下:
通配符是一类键盘字符,当查找文件夹时,常常使用通配符代替一个或多个真正的字符。注意,通配符允许用户根据字符的模式选择文件名,可以与任意一个以文件名为参数的命令一起使用,并且通配符不但可以在命令行程序中起作用,还可以在 GUI 程序中起作用。
通配符有时也称为元字符,所谓元字符就是描述其他字符(数据)的字符。在 Linux 系统中的常用通配符如表 1 所示。
字 符 | 作 用 |
---|---|
* | 可以匹配 0 个或多个字符(任意字符) |
? | 匹配任意一个字符(只能是一个) |
[ ] | 匹配中括号中任意一个字符。例如,[abc] 代表匹配方括号中的任意一个字符,或者是 a,或者是 b, 或者是 c |
[-] | 匹配中括号中任意一个字符,代表一个范围。例如,[a-z] 代表匹配字符 a~z 范围内的所有字符 |
[^] | 逻辑非,表示匹配不属于中括号内的一个字符。例如,[^0-9] 代表匹配一个不是数字的字符;[^abc] 代表匹配不包括方括号中的字符的所有字符 |
另外,在 Linux 操作系统中还支持一些特殊通配符,如表 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