第10章 Linux通配符与特殊符号知识应用实践
10.1 Linux通配符与特殊符号简介
Linux系统的功能非常强大且丰富,几乎键盘上的每个符号在Linux里都有很重要的作用和意义,今天笔者就和大家一起来梳理Linux学习里常见的通配符和特殊字符知识。
10.2 Linux通配符知识与实践
通配符简单地说就是,键盘上的一些特殊字符,可以实现某些特殊的功能,例如,用来模糊搜索系统中的文件。当查找文件时,可以使用通配符中的“*”或“?”字符来代替一个或多个真正的字符,从而更快地找到所需的文件。利用通配符可以在Linux命令行或bash脚本中轻松地匹配或查找所需的文件,以提高工作效率。
下面就为大家讲解一些常见的通配符知识与应用实践。通配符是bash的内置功能,几乎适用于所有的Linux命令。在企业工作中,常用的通配符符号如表10-1所示。
表10-1 通配符符号集合
特别声明:后文在Linux三剑客命令对应的正则表达式功能中还会讲解上述符号的新功能,请读者分开记忆,不要弄混淆了。
10.2.1 通配符之“*”号的作用介绍与实践
在Linux命令行通配符中,“*”号的意思是匹配所有(0到多个)字符,这在查找某一类文件时特别方便,它在命令行中是十分常用的符号。下面来看几个相关的示例。
以下是操作示例数据环境准备:
[root@oldboy ~]# mkdir test [root@oldboy ~]# cd test/ [root@oldboy test]# touch oldboy.txt oldgirl.txt test.txt [root@oldboy test]# touch inca.sh [root@oldboy test]# ls inca.sh oldboy.txt oldgirl.txt test.txt #<==3个txt结尾,1个sh结尾,共4个文件。
“*”号的使用示例如下。
1)查看所有结尾为txt的文件,示例代码如下:
[root@oldboy test]# ls *.txt #<==结尾为“.txt”,开头匹配任意(0或多个)字符。 oldboy.txt oldgirl.txt test.txt
2)查看所有结尾为sh的文件,“.sh”的前面可有任意个0。
[root@oldboy test]# ls *.sh inca.sh
10.2.2 通配符之“?”号的作用介绍与实践
在Linux命令行通配符中,“?”号代表的是任意一个字符(有且只有一个),这个字符在实际工作中运用得不多,读者了解即可。
“?”号的使用示例代码如下:
[root@oldboy test]# ls inca.sh oldboy.txt oldgirl.txt test.txt [root@oldboy test]# ls ?.sh #<==问号仅匹配一个字符,因此,没有找到符合要求的文件。 ls: cannot access ?.sh: No such file or directory [root@oldboy test]# touch a.sh #<==再创建一个文件。 [root@oldboy test]# ls ?.sh #<==重新匹配查找,这次找到了。 a.sh [root@oldboy test]# ls ????.sh #<==列出4个????,匹配任意4个字符,就找到了inca.sh了。 inca.sh
10.2.3 通配符之[abcd]的作用介绍与实践
在Linux命令行通配符中,“[]”(中括号)这个符号里面可以加abcd等0到多个字符,表示匹配abcd中的任意一个字符(a、b、c、d中有且只有一个)。
[abcd]的使用示例代码如下:
[root@oldboy test]# ls a.sh inca.sh oldboy.txt oldgirl.txt test.txt [root@oldboy test]# ls [abcd].sh #<==匹配“.sh”结尾,且前面必须包含a,b,c,d四个字符中的任意一个。 a.sh [root@oldboy test]# ls in[abc]a.sh #<==匹配a.sh结尾,开头是in,之后是a,b,c中的任意一个。 inca.sh
10.2.4 通配符之[a-z]的作用介绍与实践
“[]”(中括号)这个符号里面的a-z,表示匹配a到z中的任意一个字符(有且只有一个),a-z要连续,也可以用连续的数字替代,例如,[1-9]表示的就是匹配1到9中的任意一个字符。<