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
locate
ausführen , wird diese Datenbank verwendet, um nach einer bestimmten Datei zu suchen. Das Problem mitlocate
Wenn 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 Sieupdatedb
verwenden um den slocate zu aktualisieren Datenbank. Ausführen vonlocate
wieder findet nun die neu erstellte Datei. Daher verwenden viele Linux-Systemadministratoren einencron
Job, 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. :)