В чем разница между locate --basename и locate --wholename в Linux?

На странице руководства locateЯ прочитал это:

locate --basename
    Match only the base name against the specified patterns. 
    This is the opposite of --wholename.

но я не понимаю Что это значит? В чем разница между locate --basename а также locate --wholename? Можете ли вы дать мне несколько простых примеров?

1 ответ

Решение

Базовое имя является последней частью полного пути

/etc/default/grub
              ^
             basename

По умолчанию locate соответствует шаблону в любом месте пути.

С -b (базовое имя) соответствует только путям, где шаблон появляется в последней части имени пути, имени файла или имени каталога.

Например, вывод из locate gimp будет включать в себя

/etc/gimp
/etc/gimp/2.0
/etc/gimp/2.0/controllerrc

И многое другое, но locate -b gimp найдет

/etc/gimp

Без включения подкаталогов, так как нет gimp Строка в их базовых именах.

Другие вопросы по тегам