Linux Shell 命令行:文件名补全

0 / 1598

Linux Shell 命令行:文件名补全

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

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

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


星号(*****)

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

举例:

$ ls office*

问号(?)

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

举例:

$ ls office?

方括号([] )

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

举例:

$ ls office[A2]

方括号中的排除符(!)

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

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

举例:

ls office[A2][!3]  

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

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

举例:

$ ls office[a-z]  

防止通配符匹配

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

语法:

echo \*  
echo '*'  
echo "*"  

原文地址:https://learnku.com/linux/wikis/36631,如有侵权请反馈我们删除,谢谢!