Linux Shell 命令行:文件名补全 0 个改进

通配符扩展 也就是文件路径名展开,学习文件通配符扩展,先了解一下 通配符

文件名匹配字符串中含有 '*' ,'?' ,'[' 字符,意味着按照文件名或文本文件中含指定字符串方式查找文件时,查找到的结果,可能包含多个文件。外壳程序的通配符机制用于文件名的匹配。

通配符扩展 是外壳程序识别通配符模型并展开它,以匹配符合模型的文件的操作。


星号(*

星号(*)在生成匹配文件名时解释为一种标记。常放在字符串尾,表示与前面组合匹配 任意数量任意字符

举例:

$ ls office*  

Linux File Globbing1

见如上截图所示,例子中, '*' 代表任意数量的任意字符,匹配多个符合的文件。


问号(?)

你也可使用问号(?)做为标记生成匹配文件名。表示匹配 仅一个任意字符 ,下面是放在行尾的例子。

举例:

$ ls office?  

Linux File Globbing2

见如上截图所示,例子中,? 匹配仅仅一个任意字符。


方括号([] )

方括号([])也用于生成匹配文件名标记。[] 中放置的是一个字符序列,匹配时,并不是匹配整个字符序列,只是匹配字符序列中的某单个字符。(译注:可认为是逻辑或机制的单字符匹配)。

举例:

$ ls office[A2]  

Linux File Globbing3


方括号中的排除符(!)

感叹号('!')用于在方括号通配符中表示排除,反意的含义,表示方括号中 ! 后的字符排除匹配。

可以组合以上 星号 * ,问号 ? ,方括号 [] 做为通配符匹配文件名。

举例:

ls office[A2][!3]  

Linux File Globbing4

见如上截图所示,例子中,演示了这些通配符的运用。


表示范围 [a-z] 和 [0-9]

你也可按照需要在方括号中指示范围。

举例:

$ ls office[a-z]  

Linux File Globbing5

防止通配符匹配

echo *’ 命令,若当前目录为空时,显示 * 。但若当前目录不空时,命令显示当前目录下的文件。为了阻止 * 表示通配符的功能,可以使用转义符 \ ,单引号 ' 或双引号 ' 使 * 表示其字面量。

语法:

echo \*  
echo '*'  
echo "*"  

Linux File Globbing6

见如上截图所示,当 「Download」目录为空时,’echo *' 命令显示 * ,但当目录下包含文件时,要想显示 * ,可使用如上方法。

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!