从定位手册页:
If --regex is not specified, PATTERNs can contain globbing characters. If any PATTERN contains no globbing characters, locate behaves as if the pattern were *PATTERN*.
现在,查看这些命令的输出:
test@ubuntu:~$ ls
Desktop Documents Downloads Firefox_wallpaper.png Music Pictures Public Templates Videos
test@ubuntu:~$
test@ubuntu:~$
test@ubuntu:~$ locate '/bin/bash*'
test@ubuntu:~$
test@ubuntu:~$
test@ubuntu:~$ locate /bin/bash*
/snap/core18/1880/bin/bash
/snap/core18/1880/usr/bin/bashbug
/snap/core18/1944/bin/bash
/snap/core18/1944/usr/bin/bashbug
/usr/bin/bash
/usr/bin/bashbug
如果您看到我当前的工作目录没有完整路径名以/bin/bash
. 因此,我们不应该从locate /bin/bash*
. 为什么 ?根据shell 的 globbing 特性,由于我当前的工作目录中没有这样的文件/目录,因此*
不会按原样扩展和传递。因此,它应该等同于 using locate '/bin/bash*'
(这是我们上面运行的第二个命令)。因为,这不接收任何输出,因此这locate /bin/bash*
也不应该给出输出?