linux之通配符
通配符常用于文件名和目录,一般与find命令结合使用
通配符 | 解释 |
---|---|
* | 匹配任意长度字符 |
? | 匹配任意一个字符 |
[abcd] | 匹配abcd中的一个字符 |
[a-z] | 匹配a-z中任意一个字符 |
[!abcd] | 不匹配括号中的任意一个字符 |
[^a-z] | 不匹配a-z中任意一个字符 |
[root@linuxforliuhj test]# ll
total 0
-rw-r--r--. 1 root root 0 Nov 3 00:09 alis.txt
-rw-r--r--. 1 root root 0 Nov 3 00:10 Alis.txt
-rw-r--r--. 1 root root 0 Nov 3 00:10 bouch.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 Bouch.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 count.jpg
-rw-r--r--. 1 root root 0 Nov 3 00:10 Count.jpg
-rw-r--r--. 1 root root 0 Nov 3 00:10 zero
-rw-r--r--. 1 root root 0 Nov 3 00:10 Zero
[root@linuxforliuhj test]#
1.匹配任意长度字符
[root@linuxforliuhj test]# ll *.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 bouch.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 Bouch.sh
[root@linuxforliuhj test]# ll *ou*
-rw-r--r--. 1 root root 0 Nov 3 00:10 bouch.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 Bouch.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 count.jpg
-rw-r--r--. 1 root root 0 Nov 3 00:10 Count.jpg
[root@linuxforliuhj test]#
2.匹配任意一个字符
[root@linuxforliuhj test]# ll ?e*
-rw-r--r--. 1 root root 0 Nov 3 00:10 zero
-rw-r--r--. 1 root root 0 Nov 3 00:10 Zero
[root@linuxforliuhj test]# ll ?ou*
-rw-r--r--. 1 root root 0 Nov 3 00:10 bouch.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 Bouch.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 count.jpg
-rw-r--r--. 1 root root 0 Nov 3 00:10 Count.jpg
3.匹配中括号中任意一个字符
[root@linuxforliuhj test]# ll [abz]*
-rw-r--r--. 1 root root 0 Nov 3 00:09 alis.txt
-rw-r--r--. 1 root root 0 Nov 3 00:10 bouch.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 zero
[root@linuxforliuhj test]#
4.匹配中括号范围内的任意一个字符
[root@linuxforliuhj test]# export LC_ALL=C
[root@linuxforliuhj test]# ll [a-z]*
-rw-r--r--. 1 root root 0 Nov 3 00:09 alis.txt
-rw-r--r--. 1 root root 0 Nov 3 00:10 bouch.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 count.jpg
-rw-r--r--. 1 root root 0 Nov 3 00:10 zero
[root@linuxforliuhj test]#
注意在执行
ll
命令之前需要先执行export LC_ALL=C
命令修改语言环境变量,否则通配符[a-z]会匹配出大写字母,具体原因可参考linux之通配符[a-z]为什么会匹配出大写字母
5.不匹配括号中的任意一个字符
[root@linuxforliuhj test]# ll [!abz]*
-rw-r--r--. 1 root root 0 Nov 3 00:10 Alis.txt
-rw-r--r--. 1 root root 0 Nov 3 00:10 Bouch.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 Count.jpg
-rw-r--r--. 1 root root 0 Nov 3 00:10 Zero
-rw-r--r--. 1 root root 0 Nov 3 00:10 count.jpg
[root@linuxforliuhj test]#
6.不匹配中括号范围内的任意一个字符
[root@linuxforliuhj test]# ll [!a-z]*
-rw-r--r--. 1 root root 0 Nov 3 00:10 Alis.txt
-rw-r--r--. 1 root root 0 Nov 3 00:10 Bouch.sh
-rw-r--r--. 1 root root 0 Nov 3 00:10 Count.jpg
-rw-r--r--. 1 root root 0 Nov 3 00:10 Zero
[root@linuxforliuhj test]#
7.通配符与find命令结合使用具体参考
linux之find命令