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.
locate
through 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 -U
Option. 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 .
locate
in 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