我有
$ ls -l re*trict
ls: cannot access re*trict: No such file or directory
为什么这会给0匹配?
$ locate -c 're*trict'
0
$ locate -c re*trict
0
$ locate -c re?trict
0
这虽然有效但给出了8351个匹配项:
$ locate -c restrict
8351
答案 0 :(得分:1)
locate
与完整路径名匹配。要将re*trict
作为子字符串查找,您必须在其前后添加*
:
locate '*re*trict*'
答案 1 :(得分:0)
我认为答案可以在手册页上找到:
如果任何PATTERN不包含全局字符,则locate的行为就像模式是* PATTERN *。
由于我的PATTERN包含一个globbing字符,因此它不会扩展为* PATTERN *,因此尝试找到文字匹配。显然,没有名称的文件(替换s)'restrict'
,因为即使在root下,此类文件的名称也是/re?trict
,并且由于前导/