find sucht im realen System. Ist langsamer, aber immer aktuell und hat mehr Optionen (Größe, Änderungszeit, ...)
locate verwendet eine zuvor erstellte Datenbank (Befehl updatedb ). Ist viel schneller, verwendet aber eine 'ältere' Datenbank und durchsucht nur Namen oder Teile davon.
Auf jeden Fall man find und man locate hilft dir weiter.
Sowohl die locate und find Befehle finden eine Datei, aber sie funktionieren auf ganz unterschiedliche Weise.
locate funktioniert im Offline-Modus:
- Zur einfachen Erklärung, die Dateiindizierungsdatenbank im Unix-System namens slocate listet die Speicherorte aller Dateien auf, die mit dem Unix-System geliefert werden. Wenn Sie
locateausführen , wird diese Datenbank verwendet, um nach einer bestimmten Datei zu suchen. Das Problem mitlocateWenn Sie gerade eine Datei erstellt haben, nach der Sie jetzt suchen möchten, lokalisieren wird nicht funktionieren, weil slocate Datenbank ist nicht aktuell. Um dieses Problem zu umgehen, können Sieupdatedbverwenden um den slocate zu aktualisieren Datenbank. Ausführen vonlocatewieder findet nun die neu erstellte Datei. Daher verwenden viele Linux-Systemadministratoren einencronJob, um den slocate regelmäßig zu aktualisieren Datenbank.
find wird in einem Online/"in Echtzeit"-Modus arbeiten.
- Es durchsucht tatsächlich alle Verzeichnisse, um die bestimmte angegebene Datei zu finden, und untersucht jede Datei einzeln. Daher sind viele E/A-Aufrufe erforderlich.
Basierend auf der Natur ist es klar, dass Lokalisieren schneller ist als Finden, aber Finden ist in Echtzeit.
Hoffe, das hilft, die Idee zu klären. Alles Gute. :)