Linux——通配符

因为 shell 频繁地使用文件名,所以shell有一个使命令行强大的特性, shell 提供了特殊字符来帮助我们快速指定一组文件名。这些特殊字符叫做通配
符。使用通配符(也以文件名代换著称)允许我们依据字符类型来选择文件名。下表列出这些通配符以及它们所选择的对象:

通配符 
通配符 意义
匹配任意多个字符(包括零个或一个)
匹配任意一个字符(不包括零个)
[characters]  匹配任意一个属于字符集中的字符
[!characters]  匹配任意一个不是字符集中的字符
[[:class:]]  匹配任意一个属于指定字符类中的字符

 

常用字符类
字符类 意义
[:alnum:]  匹配任意一个字母或数字
[:alpha:]  匹配任意一个字母
[:digit:]  匹配任意一个数字
[:lower:]  匹配任意一个小写字母
[:upper]  匹配任意一个大写字母

 

类型匹配范例
模式 匹配对象
* 所有对象
g*  文件名以“ g”开头的文件
b*.txt 以”b” 开头,中间有零个或任意多个字符,并以”.txt” 结尾的文件
Data??? 以“ Data”开头,其后紧接着 3 个字符的文件
[abc]* 文件名以”a”,”b”, 或”c” 开头的文件
BACKUP.[0-9][0-9][0-9]
以”BACKUP.” 开头,并紧接着 3 个数字的文件
[[:upper:]]*  以大写字母开头的文件
[![:digit:]]* 
不以数字开头的文件
*[[:lower:]123]  文件名以小写字母结尾,或以“ 1”,“ 2”,或“ 3”结尾的文

接受文件名作为参数的任何命令,都可以使用通配符。
字符范围
如果我们用过别的类 Unix 系统的操作环境,或者是读过这方面的书籍,你可能遇到过 [A-Z] 或 [a-z] 形式的字符范围表示法。这些都是传统的 Unix 表示法,并且在早期的 Linux 版本中仍有效。虽然它们仍然起作用,但是你必须小心地使用它们,因为它们不会产生你期望的输出结果,除非你合理地配置它们。从现在开始,你应该避免使用它们,并且用字符类来代替它们。

通配符在 GUI 中也有效
通配符非常重要,不仅因为它们经常用在命令行中,而且一些图形文件管理器也支持它们。
• 在 Nautilus (GNOME 文件管理器)中,可以通过 Edit/Select 模式菜单项来
选择文件。输入一个用通配符表示的文件选择模式后,那么当前所浏览的目录
中,所匹配的文件名就会高亮显示。
• 在 Dolphin 和 Konqueror( KDE 文件管理器)中,可以在地址栏中直接输入
通配符。例如,如果你想查看目录/usr/bin 中,所有以小写字母 ‘u’ 开头的文
件,在地址栏中敲入 ‘/usr/bin/u*‘,则文件管理器会显示匹配的结果。
最初源于命令行界面中的想法,在图形界面中也适用。这就是使 Linux 桌面系统如此强大的众多原因中的一个



posted @ 2017-04-19 16:38  zxzhang  阅读(836)  评论(1编辑  收藏  举报