1.单独的“*”
这里指的是只有“ * ”出现的情况,默认为单独的一个,“ * ”没有和其它字符联合起来(表示目录的“/”除外)时,这种情况通配的是该目录下的所有非隐藏内容,包括非隐藏的目录和非隐藏的文件。
如:ls *的时候,相当于ls当前目录下的所有内容;
ls a* 因为星号表示一个或者多个字符,所以可以找到a开头的所有文件;
ls *a 但是以a结尾的没有,因为有文件的后缀,应该为ls *a.txt;
ls a表示中间段含有a的文件;
/a/* 匹配所有在a路径下的文件,不包括文件夹
/a/*.x 匹配所有在a路径下的.x文件
注意:“ * ”单独出现匹配目录下所有内容的用途十分广泛,用起来也很方便。但是这是个危险操作,操作时一定要“pwd”确认当前目录,或者使用绝对路径,再或者使用至少一级的可以确定目录路径的相对路径(比如rm –rf training/* 就很安全,因为知道training是自己建立的;但是rm –rf conf/* 就很危险,系统中有很多conf目录)。rm –rf *;mv *;chmod *;chown *这些命令,如果执行路径不对,而且执行者是root,那么都可以造成系统崩溃。
2.“.*”
表示的是该目录下所有的隐藏文件和目录以及”.”,”..”。可以尝试执行 ls ~/.*
3.“**”
* 匹配0或者任意数量的字符
** 匹配0或者更多的目录
如:
/**/a 匹配/b/a, /c/d/a, 和 /a,即匹配所有a文件夹,包括a为子文件夹的情况
/a/**/b 匹配所有以a为上层文件夹,b为子文件夹的情况
/a/** /* 匹配a路径下的任何文件和子文件,包括文件夹
/ ** /*.x 匹配任何的.x文件