元符号
Shell提供了一套完整的字符串模式匹配规则,帮助你按模式来匹配文件。
*
- 匹配文件名中的任何字符串,包括空字符串。
?
- 匹配文件名中的任何单个字符。
[...]
- 匹配[]
中所包含的任何字符。
[!...]
- 匹配[]
中非感叹号之后的字符。
当Shell遇到上述字符,就会把它们当做特殊字符,而不是文件名中的普通字符,这样用户就可以用它们来匹配相应的文件名。
使用*
$ ls he* #列出he开头的文件
$ ls *.txt #列出.txt结尾的文件
$ ls he*.txt #列出以he开头并且以.txt结尾的文件
$ cd dirnam* #可以用*省去输入整个路径名的麻烦
使用?
$ ls ???T* #列出前面任意三个字符紧接着T,然后跟任何字符的文件
$ ls foo??.txt #列出foo开头紧跟任意两个字符,并以.txt结尾的文件
使用[...]
和[!...]
$ ls [io]* #列出以i、o、io开头的文件
$ ls bar[0-9] #[0-9]表示0~9范围内任意单个数字,列出bar开头以一个数字结尾的文件
$ ls [!0-9]* #列出非数字开头的文件
$ ls [A-Z]* #列出大写字母开头的文件
$ ls [a-z]* #列出小写字母开头的文件