ADMIN-Tipp: Schneller suchen als find

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Unter Linux ist find das bewährte Tool für eine Suche nach Dateien. Es kann flexibel mit regulären Ausdrücken und verschiedenen Suchtiefen umgehen oder eine Datumsrechnung einbeziehen. Allerdings hat es einen Nachteil: Speziell bei großen Volumes ist es prinzipbedingt sehr zeitintensiv, da es immer alle Files im Dateisystem aufsuchen und vergleichen muss.

Eine sehr schnelle Alternative dazu ist locate. Es ermittelt wie find Textmuster in Datei- oder Pfadnamen. Dabei ergänzt es anders als find übrigens implizit immer das Sternchen als Globbing Character vor und nach dem Suchbegriff (*PATTERN*). Das heißt, das Muster wird nicht nur als eigenständiges Wort, sondern überall auch innerhalb anderer Worte gefunden. Das ist nicht immer günstig. Will man das nicht haben, dann muss man mit --regex den RegEx-Mode einschalten.
Locate visitiert bei seiner Suche allerdings nicht wie find immer wieder das ganze Filesystem, sondern nur eine Indexdatenbank, die das Tool updatedb anlegt und crongesteuert in der Regel täglich aktualisiert. Nachteil: Ist es bis zu dieser täglichen Aktualisierung noch eine Weile hin, dann kennt locate ein eben angelegtes File  noch nicht oder zeigt ein bereits gelöschtes File immer noch an. Vorteil: Da locate nur diesen Index durchsucht, ist es um ein Vielfaches schneller. Im Beispiel braucht es nur eine halbe Sekunde, wo find über vier Minuten rödelt, obwohl es nur auf Verzeichnisnamen losgelassen wurde.

root@hercules:~# time find / -name cron.daily -type d
/etc/cron.daily

real    4m19.706s
user    0m4.916s
sys    0m15.309s

root@hercules:~# time locate cron.daily
/etc/cron.daily
...

real    0m0.567s
user    0m0.560s
sys    0m0.008s
10.09.2013

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Setup eines Kubernetes-Clusters mit Kops

Vor allem für Testinstallationen von Kubernetes gibt es einige Lösungen wie Kubeadm und Minikube. Für das Setup eines Kubernetes-Clusters in Cloud-Umgebungen hat sich Kops als Mittel der Wahl bewährt. Wir beschreiben seine Fähigkeiten und geben eine Anleitung für den praktischen Einsatz. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite