shell通配符

通配符

在 Bash 中,如果需要模糊匹配文件名或目录名,就要用到通配符。下面为常用的通配符。

通配符 作 用
? 匹配一个任意字符
* 匹配 0 个或任意多个任意字符,也就是可以匹配任何内容
[] 匹配中括号中任意一个字符。例如,[abc] 代表一定匹配一个字符,或者是 a,或者是 b,或 者是 c
[-] 匹配中括号中任意一个字符,- 代表一个范围。例如,[a-z] 代表匹配一个小写字母
[^] 逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9] 代表匹配一个不是数字的字符

举几个例子:

[root@localhost ~]# cd /tmp/
[root@localhost tmp]# rm -rf *

进入临时目录,删除所有文件
这个也是通配符,代表当前目录中的所有文件

[root@localhost tmp]# touch abc
[root@localhost tmp]# touch abcd
[root@localhost tmp]# touch 012
[root@localhost tmp]# touch 0abc

建立几个测试文件

[root@localhost tmp]# ls *
012 0abc abc abed

*代表所有的文件

[root@localhost tmp]# ls ?abc
0abc

"?"匹配任意一个字符,所以会匹配 0abc,但是不能匹配 abc,因为"?"不能匹配空

[root@localhost tmp]# ls [0-9]* 012 0abc

#匹配任何以数字开头的文件

[root@localhost tmp]# ls [^0-9]* abc abcd

#匹配不以数字开头的文件

posted @ 2025-04-28 17:04  哈士奇说骗你是小狗  阅读(71)  评论(0)    收藏  举报