Odpowiedzi:
Innym podejściem byłoby użycie dopasowania wzorca w locate:
locate '/some/directory/*filename*'
Porównaj dane wyjściowe poniższych poleceń:
$ 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* daje ten sam wynik.
$ locate '/usr/lib64/*tmpfile'nie zwróci żadnych wyników.
locatethrough grep.
Utwórz bazę danych slocate dla określonego katalogu za pomocą:
updatedb -U /path/to/directory
i szukaj za pomocą:
locate <search_string>
AKTUALIZACJA
Działa to dobrze na moim systemie Gentoo, ale CentOS nie zawiera -Uopcji. Możesz więc spróbować poniżej:
Zbuduj bazę danych za pomocą:
# updatedb -U /path/to/dir -o dir_locate.db
i szukaj:
# locate -d dir_locate.db <search_string>
updatedb: can not change group of file 'db.db.kHhzFz' to 'mlocate': Operation not permittedsprawdź, jak używać komendy updatedb jako zwykły użytkownik w systemie Linux .
locatewyszukać w określonym katalogu:alias my_locate="updatedb -U /path/to/yourdir -o /path/to/your_dir_locate.db; locate -d /path/to/dir_locate.db "Gdy alias zacznie obowiązywać, wpisz typ terminalamy_locate *foo*i ruszaj na wyścigi. Możesz łączyć aktualizacje bazy danych i lokalizować wyszukiwanie, używając znaku dwukropka do konkatowania baz danych. rtfm: linux.die.net/man/8/updatedb