通配符
find
和locate
指令在实际使用中会用到通配符(wildcards),通配符有一些特殊的含义:
-
*
没有或者任意个字符 -
?
无论如何得仅有一个字符 -
[string]
指定范围内的一个字符。如[a-z0-9_]
表示的就是一个字符可能是小写字母、数字或下划线 ,最前面加上!
或者^
表示取反。(这个叫做character classes) -
\
去除转义,可以用在character classes
为了能够正常搜索到隐藏文件或左斜杠,匹配时.
或者/
都没有特殊函数含义。*macs
匹配.macs
; foo*bar
匹配foo3/bar
。
使用单引号或者双引号防止shell变量扩展对查找的影响。
Tips:locate命令简化:你可以使用--limit
控制匹配个数,--count
只输出个数如:locate vel.txt --count
-
find /home/junwu/Desktop/t1 -name test.cpp
精确列出t1文件夹下的所有文件名为
test.cpp
-
find /home/junwu/Desktop/t1 -name test?.cpp 想查找test后有一个2的cpp文件
-
find /home/junwu/Destop/t1 -name test* 想查找文件开始为test的所有文件
-
find /home/junwu/Desktop/t1 -name *test.so 查找动态库test