Відповіді:
Іншим підходом було б використання шаблону відповідності у locate:
locate '/some/directory/*filename*'
Порівняйте вихід команд нижче:
$ locate tmpfile
/usr/lib64/perl5/auto/POSIX/tmpfile.al
/usr/share/man/fr/man3/tmpfile.3.gz
/usr/share/man/ja/man3/tmpfile.3.gz
/usr/share/man/man3/tmpfile.3.gz
/usr/share/man/man3p/tmpfile.3p.gz
$
$ locate '/usr/lib64/*tmpfile*'
/usr/lib64/perl5/auto/POSIX/tmpfile.al
$
locate /usr/lib*tmpfile* дає такий же результат.
$ locate '/usr/lib64/*tmpfile'дасть результатів.
locateнаскрізний grep.
Створіть базу даних слота для конкретного каталогу за допомогою:
updatedb -U /path/to/directory
і пошук за допомогою:
locate <search_string>
ОНОВЛЕННЯ
Це чудово працює в моїй системі Gentoo, але CentOS не включає -Uваріант. Отже, ви можете спробувати нижче:
Створіть базу даних за допомогою:
# updatedb -U /path/to/dir -o dir_locate.db
і пошук:
# locate -d dir_locate.db <search_string>
updatedb: can not change group of file 'db.db.kHhzFz' to 'mlocate': Operation not permittedперевірте, як використовувати команду updatedb як звичайний користувач в Linux .
locateпошук у визначеному каталозі:alias my_locate="updatedb -U /path/to/yourdir -o /path/to/your_dir_locate.db; locate -d /path/to/dir_locate.db "Після того, як псевдонім ефективний, виберіть тип терміналуmy_locate *foo*і ви переходите до перегонів. Ви можете об'єднати оновлення баз даних і знайти пошук, використовуючи символ двокрапки для стиснення баз даних. rtfm: linux.die.net/man/8/updatedb