Antworten:
Ein anderer Ansatz wäre die Verwendung des Mustervergleichs in locate:
locate '/some/directory/*filename*'
Vergleichen Sie die Ausgabe der folgenden Befehle:
$ 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* gibt das gleiche Ergebnis.
$ locate '/usr/lib64/*tmpfile'werden keine Ergebnisse zurückgegeben.
locatethrough immer weiterleiten grep.
Erstellen Sie eine Slocate-Datenbank für Ihr spezifisches Verzeichnis mit:
updatedb -U /path/to/directory
und suche mit:
locate <search_string>
AKTUALISIEREN
Dies funktioniert gut auf meinem Gentoo-System, aber CentOS enthält keine -UOption. Sie können es also stattdessen unten versuchen:
Erstellen Sie die Datenbank mit:
# updatedb -U /path/to/dir -o dir_locate.db
und suche:
# locate -d dir_locate.db <search_string>
updatedb: can not change group of file 'db.db.kHhzFz' to 'mlocate': Operation not permitted, überprüfen Sie, wie Sie den Befehl updatedb als gewöhnlicher Benutzer unter Linux verwenden können .
locatein einem bestimmten Verzeichnis suchen können:alias my_locate="updatedb -U /path/to/yourdir -o /path/to/your_dir_locate.db; locate -d /path/to/dir_locate.db "Sobald der Alias wirksam ist, geben Sie den Terminaltyp einmy_locate *foo*und Sie können loslegen. Sie können Datenbankaktualisierungen verketten und nach Suchen suchen, indem Sie den Doppelpunkt zum Verketten von Datenbanken verwenden. rtfm: linux.die.net/man/8/updatedb