Почему locate */file*name работает, а locate file*name — нет?

Почему locate */file*name работает, а locate file*name — нет?

Следующее работает так, как задумано:

$ locate */synse_*_r_unseen_zs.npy 
/mnt/home/dario/temp/synse_resources/language_modelling/repo_test_cadavae_5_r_val/bert/cadavae_5_r_unseen_zs.npy                                                                                                   /mnt/home/dario/temp/synse_resources/language_modelling/repo_test_synse_10_r_val/bert/synse_10_r_unseen_zs.npy 
$ locate synse_*_r_unseen_zs.npy 

Однако это ничего не вернуло.

Как дела?

EDIT: Отладка:

$ echo */synse_*_r_unseen_zs.npy 
*/synse_*_r_unseen_zs.npy
$ echo /synse_*_r_unseen_zs.npy
/synse_*_r_unseen_zs.npy
$ echo synse_*_r_unseen_zs.npy
synse_*_r_unseen_zs.npy

решение1

При поиске файлов команда locate, содержащая стандартные подстановочные знаки (также известные как шаблоны подстановки), ищет пути к файлам в своей локальной базе данных. /synse_*_r_unseen_zs.npyне является полным путем к файлу, поэтому locate /synse_*_r_unseen_zs.npyничего не возвращает (потому что результаты поиска locate synse_*_r_unseen_zs.npyв вашем Ubuntu представляют собой пустой набор), однако */synse_*_r_unseen_zs.npyявляется полным путем к файлу(ам), поэтому locate */synse_*_r_unseen_zs.npyвозвращает результаты команды. Символ звездочки в этих командах интерпретируется locate как подстановочный знак. Звездочка может представлять любое количество символов (включая ноль, другими словами, ноль или более символов).

решение2

Как отметил @steeldriver, locateпо умолчанию добавляет *подстановочный знак к началу и концу поискового запроса (так locate abcоно и есть на самом деле locate *abc*)кромекогда вы добавляете подстановочный знак самостоятельно в поисковый запрос, то дополнительные *подстановочные знаки не добавляются и не добавляются в начало.

Итак, пока $ locate synse_*_r_unseen_zs.npyничего не находит, поскольку не добавляется префикс a *к поисковому запросу, $ locate *synse_*_r_unseen_zs.npyнаходит ожидаемое

/mnt/home/dario/temp/synse_resources/language_modelling/repo_test_cadavae_5_r_val/bert/cadavae_5_r_unseen_zs.npy                                                                                                   /mnt/home/dario/temp/synse_resources/language_modelling/repo_test_synse_10_r_val/bert/synse_10_r_unseen_zs.npy 

Связанный контент