Linux 上的 locate --basename 和 locate --wholename 有什么区别?

SWI*_*WII 6 command-line locate

在手册页上locate,我读到了这个:

locate --basename
    Match only the base name against the specified patterns. 
    This is the opposite of --wholename.
Run Code Online (Sandbox Code Playgroud)

但我不明白。这是什么意思?locate --basename和 和有locate --wholename什么区别?你能给我一些简单的例子吗?

Zan*_*nna 6

基本名称是完整路径的最后一部分

/etc/default/grub
              ^
             basename
Run Code Online (Sandbox Code Playgroud)

默认情况下,locate匹配路径中任何位置的模式。

使用-b(basename) 它仅匹配模式出现在路径名最后一部分的路径,文件名或目录名本身。

例如,来自的输出locate gimp将包括

/etc/gimp
/etc/gimp/2.0
/etc/gimp/2.0/controllerrc
Run Code Online (Sandbox Code Playgroud)

还有很多其他的东西,但locate -b gimp会发现

/etc/gimp
Run Code Online (Sandbox Code Playgroud)

不包括子目录,因为gimp它们的基本名称中没有字符串。