linux find 通配符(新人向)

linux find 通配符(新人向)

linux下使用find寻找文件时,总是会用到正则表达式.
这里来简单的总结一下find的通配符.

通配符类型

通配符名 通配符作用
* 匹配任意字符串
? 匹配任意单个字符
[] 匹配[]内字符,可以按,-区分,也可无符号区分
! 匹配非!后的字符串中的每一个字符 一般配合[]使用

|用来转义通配符

示例

这里假设我们 有个文件夹下是两个文件s.txt以及t.txt

*

find . -name '*'

出来的结果

.
./s.txt
./t.txt

?

find . -name '?.txt'

出来的结果

./s.txt
./t.txt

[]

这里括号内

find . -name '[ts].txt'
find . -name '[t|s].txt'
find . -name '[t,s].txt'

用空白, | 或者,一样.都是从[]中挑出一个

./s.txt
./t.txt

!

!匹配括号内!后的字符串,非他们的即可展示

find . -name '[!tm].txt'

这里意为非t且非m的字符匹配.所以匹配到了s

./s.txt

如果!并非[]中的首置位,则就把他按照!来看.我们再创建几个txt

vim m.txt
vim \!.txt

如果!在首置位已经说了,如果不在首置位

find . -name '[s!t].txt'
./!.txt
./s.txt
./t.txt

可以看到结果把他当做了普通字符处理

\

转义字符.主要用来匹配通配符所代表的字符
例如

find . -name '\!.txt'

匹配出的结果为:

./!.txt

可以看出确实如上面所说.

总结

今天用find的时候找文件不是很顺,查了一些资料做一些总结.

你可能感兴趣的:(linux)