通配符
在我们开始使用我们的命令之前,我们需要讨论一个使这些命令如此强大的 shell 特性。 由于 shell 大量使用文件名,因此它提供了特殊字符来帮助您快速指定文件名组。 这些特殊字符是
被称为 通配符. 使用通配符(也称为 通配) 允许您根据字符模式选择文件名。 下表列出了通配符及其选择的内容:
表 4-1:通配符
通配符含义
通配符含义
* 匹配任何字符
? 匹配任何单个字符
[字符] 匹配作为集合成员的任何字符 字符
[!字符] 匹配任何不是集合成员的字符
字符
[[:程:]] 匹配属于指定成员的任何字符
程
表 4-2 列出了最常用的字符类:
表 4-2:常用字符类
字符类含义
字符类含义
[:alnum:] 匹配任何字母数字字符 [:alpha:] 匹配任何字母字符 [:digit:] 匹配任何数字
[:lower:] 匹配任何小写字母
[:upper:] 匹配任何大写字母
使用通配符可以为文件名构建非常复杂的选择标准。 以下是模式及其匹配的一些示例:
表 4-3:通配符示例
模式匹配
模式匹配
* 所有文件
g* 任何以“g”开头的文件
b*.txt 任何以“b”开头、后跟任何字符并以“.txt”结尾的文件
通配符
数据??? 任何以“Data”开头的文件,后跟正好三个字符
[abc]* 任何以“a”、“b”或“c”开头的文件
BACKUP.[0-9][0-9][0-9] 任何以“BACKUP”开头的文件。
紧跟三个数字
[[:upper:]]* 任何以大写字母开头的文件
[![:digit:]]* 任何不以数字开头的文件
*[[:下:]123] 任何以小写字母或数字“1”、“2”或“3”结尾的文件
通配符可以与任何接受文件名作为参数的命令一起使用,但我们将在第 7 章中详细讨论。
字符范围
如果您来自另一个类 Unix 环境,或者一直在阅读有关此主题的其他书籍,您可能遇到过 [AZ] 或者 [az] 字符范围符号。 这些是传统的 Unix 符号,也适用于旧版本的 Linux。 它们仍然可以工作,但您必须非常小心使用它们,因为除非正确配置,否则它们不会产生预期的结果。 现在,您应该避免使用它们并改用字符类。
通配符也适用于 GUI
通配符特别有价值,不仅因为它们在命令行上使用如此频繁,而且还被一些图形文件管理器支持。
● In 鹦鹉螺 (GNOME 的文件管理器),您可以使用 Edit/Select Pattern 菜单项选择文件。 只需输入带有通配符的文件选择模式,当前查看目录中的文件就会突出显示以供选择。
● 在某些版本中 海豚 和 Konqueror的 (KDE 的文件管理器),您可以直接在位置栏上输入通配符。 例如,如果要查看/usr/bin 目录中所有以小写“u”开头的文件,在地址栏中输入“/usr/bin/u*”,就会显示结果。
许多最初在命令行界面中发现的想法也进入了图形界面。 它是使 Linux 桌面如此强大的众多因素之一。