使用 bash 通配符定位行为

Ank*_*wal 6 linux bash shell

我有

$ ls -l re*trict
ls: cannot access re*trict: No such file or directory
Run Code Online (Sandbox Code Playgroud)

为什么这会给出 0 个匹配项?

$ locate -c 're*trict'
0
$ locate -c re*trict
0
$ locate -c re?trict
0
Run Code Online (Sandbox Code Playgroud)

但这是有效的,并给出了 8351 个匹配项:

$ locate -c restrict
8351
Run Code Online (Sandbox Code Playgroud)

tha*_*guy 10

locate与完整路径名匹配。要查找re*trict子字符串,您必须*在其前后添加:

locate '*re*trict*'
Run Code Online (Sandbox Code Playgroud)