andere 'find'-Flags, die je nach Bedarf angebracht sein können: -type f (kümmert sich nicht um Verzeichnisse oder Symlinks mit demselben Namen) -ls (um Details wie die Größe der Datei anzuzeigen, z. B. wenn Dateien dieselben haben Name, aber andere Inhalte)
Zac Thompson
19
locate filename
Viel schneller als find, wenn Sie den updatedbSuchdienst ausführen und nur Dateien finden, die zum Zeitpunkt der letzten Ausführung vorhanden waren (normalerweise in der Nacht zuvor unter der Kontrolle eines Cron-Jobs).
Sie könnenupdatedb von Hand laufen , aber das ist noch langsamer als der findCletus vorschlägt und erfordert root. Manchmal aktualisiere ich die Datenbank von Hand, nachdem ich ein paar neue Sachen installiert habe.
Locate funktioniert nur, wenn der Dienst zum Erstellen der locate-Datenbank ausgeführt wird (vergessen Sie, wie sie heißt). Es kann auch zu Verzögerungen kommen (da die gesuchte Datei möglicherweise seit dem letzten Build hinzugefügt wurde).
Cletus
Bearbeitungen und Kommentare auf dem Draht gekreuzt. Cool. In beiden Punkten haben Sie natürlich Recht.
dmckee
4
Wenn Sie find /mehr als einmal in der Woche einen großen Baum locatebearbeiten, lohnt es sich wahrscheinlich, den Dienst auszuführen, da er locate(1)so viel schneller ist.
Drew Stephens
@cletus Running sudo periodic weeklyaktualisiert die locateDatenbank. Führen Sie das nach jeder Installation oder jedem Download aus, die die gewünschten Dateien enthalten.
Basil Bourque
2
Wenn Sie locate (aka slocate) installiert haben, dann
locate example.filename
locate führt jede Nacht einen Cron-Job aus, der alle Dateien auf Ihrem Computer neu indiziert. Aus diesem Grund ist es nicht immer auf dem neuesten Stand.
Wie bereits erwähnt, locateist dies der schnelle Weg, um eine Datei zu finden. Dieser Befehl verwendet einen vorkompilierten Index der Datei- und Ordnernamen. Diese Datenbank mit Namen wird durchsucht, anstatt durch Ihr Dateisystem zu crawlen.
locate example.filename
Um zwischen Groß- und Kleinschreibung zu unterscheiden, fügen Sie hinzu -i.
locate -i eXAmPle.FileName
locateDatenbank aktualisieren
Die von verwendete Datenbank locatemuss auf dem neuesten Stand sein. Nach einer Installation oder einem Download, der möglicherweise die gewünschte Datei enthält, müssen Sie die locateDatenbank aktualisieren .
Die locateDatenbank wird irgendwann automatisch von Ihrem FreeBSD-System aktualisiert. Es gibt eine wöchentliche Reihe von Aufgaben, die diese Aufgabe umfasst. Diese Aufgaben werden im /etc/periodic/weekly/310.locateSkript aufgelistet .
Die einfachste und sicherste Möglichkeit, eine frühzeitige Aktualisierung der locateDatenbank zu erzwingen, besteht darin, die wöchentlichen Aufgaben sofort auszuführen.
sudo periodic weekly
Oder Sie könnten sogar alle regulären Aufgaben erzwingen. Möglicherweise möchten Sie dies sofort nach dem Einrichten eines neuen FreeBSD-Systems tun.
sudo periodic daily weekly monthly
Wenn locateSie die Datenbank auf andere Weise aktualisieren , erhalten Sie möglicherweise eine Meldung, dass Sie unsicher sind und die Namen aller Dateien Ihres Systems jedem Benutzer auf dem FreeBSD-System mitteilen. Die Verwendung der periodicRoute vermeidet dieses Problem.
Ja, das passt zu allem und wirft dann alles weg, bis auf den einen Namen, den Sie gesucht haben. Stattdessen können Sie einfach 'find -name "example.filename"' ausführen, was genau dasselbe bewirkt, ohne zuerst alles zu drucken und ohne einen zusätzlichen grep-Prozess auszuführen.
Antworten:
quelle
Viel schneller als
find
, wenn Sie denupdatedb
Suchdienst ausführen und nur Dateien finden, die zum Zeitpunkt der letzten Ausführung vorhanden waren (normalerweise in der Nacht zuvor unter der Kontrolle eines Cron-Jobs).Sie können
updatedb
von Hand laufen , aber das ist noch langsamer als derfind
Cletus vorschlägt und erfordert root. Manchmal aktualisiere ich die Datenbank von Hand, nachdem ich ein paar neue Sachen installiert habe.quelle
find /
mehr als einmal in der Woche einen großen Baumlocate
bearbeiten, lohnt es sich wahrscheinlich, den Dienst auszuführen, da erlocate(1)
so viel schneller ist.sudo periodic weekly
aktualisiert dielocate
Datenbank. Führen Sie das nach jeder Installation oder jedem Download aus, die die gewünschten Dateien enthalten.Wenn Sie locate (aka slocate) installiert haben, dann
locate führt jede Nacht einen Cron-Job aus, der alle Dateien auf Ihrem Computer neu indiziert. Aus diesem Grund ist es nicht immer auf dem neuesten Stand.
quelle
Manchmal möchten Sie Dateien auf einer bestimmten Verzeichnisebene finden. In diesem Fall kann es praktisch sein, Shell-Platzhalter zu verwenden:
Dies funktioniert natürlich nur, wenn Sie eine starre Verzeichnisstruktur haben.
quelle
locate
Wie bereits erwähnt,
locate
ist dies der schnelle Weg, um eine Datei zu finden. Dieser Befehl verwendet einen vorkompilierten Index der Datei- und Ordnernamen. Diese Datenbank mit Namen wird durchsucht, anstatt durch Ihr Dateisystem zu crawlen.Um zwischen Groß- und Kleinschreibung zu unterscheiden, fügen Sie hinzu
-i
.locate
Datenbank aktualisierenDie von verwendete Datenbank
locate
muss auf dem neuesten Stand sein. Nach einer Installation oder einem Download, der möglicherweise die gewünschte Datei enthält, müssen Sie dielocate
Datenbank aktualisieren .Die
locate
Datenbank wird irgendwann automatisch von Ihrem FreeBSD-System aktualisiert. Es gibt eine wöchentliche Reihe von Aufgaben, die diese Aufgabe umfasst. Diese Aufgaben werden im/etc/periodic/weekly/310.locate
Skript aufgelistet .Die einfachste und sicherste Möglichkeit, eine frühzeitige Aktualisierung der
locate
Datenbank zu erzwingen, besteht darin, die wöchentlichen Aufgaben sofort auszuführen.Oder Sie könnten sogar alle regulären Aufgaben erzwingen. Möglicherweise möchten Sie dies sofort nach dem Einrichten eines neuen FreeBSD-Systems tun.
Wenn
locate
Sie die Datenbank auf andere Weise aktualisieren , erhalten Sie möglicherweise eine Meldung, dass Sie unsicher sind und die Namen aller Dateien Ihres Systems jedem Benutzer auf dem FreeBSD-System mitteilen. Die Verwendung derperiodic
Route vermeidet dieses Problem.quelle
Wenn Sie die Datenbank lokalisieren aktuell haben, dann nur:
quelle
Mache ich manchmal
wahrscheinlich jedoch enorm ineffizient.
quelle