Linux 文件通配符规则
星号 *
- 匹配任意长度的文件名字符串(包括空字符串)
- 点字符(
.),当它作为文件名或路径名分量的第一个字符时,必须显式匹配 - 斜线(
/)也必须显式匹配 - 例:
*file匹配file,makefile,不匹配.profile文件;try*c匹配try1.c,try.c,try.basic。
问号 ?
匹配任一单字符
方括号 [ ]
匹配括号内任一字符,也可以用减号指定一个范围
例: [A-Z]*,*.[ch],[Mm]akefile
波浪线 ~
(Bash特有的)~ 当前用户的主目录(home)~kuan 用户kuan的主目录(home)~root 用户root的主目录(home)
点文件.与点点文件..
当前目录与上级目录
把.文件解释为当前目录,不是通配符处理程序完成的,来源于目录的存储结构
注意
- 文件名通配符规则与正则表达式的规则不同,应用场合不同
- 不同种类shell通配符规则会略有些差别
- Windows中
*.*匹配所有文件,Linux中*.*要求文件名中必须含有圆点否则不匹配,如:*.*与makefile不匹配 - 可以使用类似
*/*.[ch]通配符,*/*/*.conf - 文件通配符适用所有命令