findsucht im realen System. Ist langsamer aber immer aktuell und hat mehr Optionen (Größe, Änderungszeit, ...)
locateverwendet eine zuvor erstellte Datenbank (Befehl updatedb). Ist viel schneller, verwendet aber eine 'ältere' Datenbank und sucht nur nach Namen oder Teilen davon.
In jedem Fall man findund man locatehilft Ihnen weiter.
Sowohl die locateund findBefehle eine Datei finden, aber sie arbeiten auf ganz unterschiedliche Weise.
locate wird in einem Offline-Modus arbeiten:
Zur einfachen Erklärung listet die Dateiindexdatenbank im Unix-System mit dem Namen slocate die Speicherorte aller Dateien auf, die im Lieferumfang des Unix-Systems enthalten sind. Bei der Ausführung locatewird diese Datenbank verwendet, um nach einer bestimmten Datei zu suchen. Das Problem dabei locateist, dass locate nicht funktioniert, wenn Sie gerade eine Datei erstellt haben, nach der Sie jetzt suchen möchten, da die Datenbank slocate nicht auf dem neuesten Stand ist. Um dieses Problem zu beheben, können Sie updatedbdie Datenbank slocate aktualisieren . Bei locateerneuter Ausführung wird nun die neu erstellte Datei gefunden. Daher verwenden viele Linux-Systemadministratoren einen cronJob, um die Datenbank slocate regelmäßig zu aktualisieren .
find wird in einem Online / "in Echtzeit" -Modus arbeiten.
Tatsächlich durchsucht es alle Verzeichnisse, um die angegebene Datei zu finden, und untersucht jede Datei nacheinander. Daher sind viele E / A-Aufrufe erforderlich.
Aufgrund der Natur ist es klar, dass das Auffinden schneller ist als das Finden, das Finden jedoch in Echtzeit.
Hoffe, dies wird helfen, die Idee zu klären. Alles Gute. :)
locate schaut einfach in die Datenbank und meldet den Speicherort der Datei.
find verwendet keine Datenbank, durchsucht alle Verzeichnisse und deren Unterverzeichnisse und sucht nach Dateien, die dem angegebenen Kriterium entsprechen.
Eine Alternative zur Verwendung von find ist der Befehl locate. Dieser Befehl ist häufig schneller und kann das gesamte Dateisystem mühelos durchsuchen. Sie können den Befehl mit apt-get installieren:
sudo apt-get update
sudo apt-get install mlocate
Der Grund dafür, dass die Suche schneller ist als die Suche, liegt darin, dass eine Datenbank der Dateien im Dateisystem verwendet wird. Die Datenbank wird normalerweise einmal täglich mit einem Cron-Skript aktualisiert. Sie können sie jedoch manuell aktualisieren, indem Sie Folgendes eingeben:
sudo updatedb
Führen Sie diesen Befehl jetzt aus. Denken Sie daran, dass die Datenbank immer auf dem neuesten Stand sein muss, wenn Sie kürzlich erfasste oder erstellte Dateien suchen möchten.
Antworten:
find
sucht im realen System. Ist langsamer aber immer aktuell und hat mehr Optionen (Größe, Änderungszeit, ...)locate
verwendet eine zuvor erstellte Datenbank (Befehlupdatedb
). Ist viel schneller, verwendet aber eine 'ältere' Datenbank und sucht nur nach Namen oder Teilen davon.In jedem Fall
man find
undman locate
hilft Ihnen weiter.quelle
updatedb
mach ungefähr so was wiefind / -type f | gzip > locate.gz
.Sowohl die
locate
undfind
Befehle eine Datei finden, aber sie arbeiten auf ganz unterschiedliche Weise.locate
wird in einem Offline-Modus arbeiten:locate
wird diese Datenbank verwendet, um nach einer bestimmten Datei zu suchen. Das Problem dabeilocate
ist, dass locate nicht funktioniert, wenn Sie gerade eine Datei erstellt haben, nach der Sie jetzt suchen möchten, da die Datenbank slocate nicht auf dem neuesten Stand ist. Um dieses Problem zu beheben, können Sieupdatedb
die Datenbank slocate aktualisieren . Beilocate
erneuter Ausführung wird nun die neu erstellte Datei gefunden. Daher verwenden viele Linux-Systemadministratoren einencron
Job, um die Datenbank slocate regelmäßig zu aktualisieren .find
wird in einem Online / "in Echtzeit" -Modus arbeiten.Aufgrund der Natur ist es klar, dass das Auffinden schneller ist als das Finden, das Finden jedoch in Echtzeit.
Hoffe, dies wird helfen, die Idee zu klären. Alles Gute. :)
quelle
locate
schaut einfach in die Datenbank und meldet den Speicherort der Datei.find
verwendet keine Datenbank, durchsucht alle Verzeichnisse und deren Unterverzeichnisse und sucht nach Dateien, die dem angegebenen Kriterium entsprechen.quelle
Eine Alternative zur Verwendung von find ist der Befehl locate. Dieser Befehl ist häufig schneller und kann das gesamte Dateisystem mühelos durchsuchen. Sie können den Befehl mit apt-get installieren:
Der Grund dafür, dass die Suche schneller ist als die Suche, liegt darin, dass eine Datenbank der Dateien im Dateisystem verwendet wird. Die Datenbank wird normalerweise einmal täglich mit einem Cron-Skript aktualisiert. Sie können sie jedoch manuell aktualisieren, indem Sie Folgendes eingeben:
Führen Sie diesen Befehl jetzt aus. Denken Sie daran, dass die Datenbank immer auf dem neuesten Stand sein muss, wenn Sie kürzlich erfasste oder erstellte Dateien suchen möchten.
quelle