Effiziente Suche nach Dateien, Programmen und Dokumentationen ist in der Linux-Administration unverzichtbar. Dieser Blogpost vergleicht die Paare locate vs. find, which vs. whereis und man -k/apropos, erklärt ihre Funktionen und gibt klare Empfehlungen, wann welches Tool einzusetzen ist. Alle Befehle sind standardmäßig auf den meisten Distributionen verfügbar.
locate vs. find: Datei- und Ordnersuche
locate durchsucht eine vorgefertigte Datenbank (erzeugt via updatedb), die alle Dateinamen systemweit indexiert. Es ist extrem schnell, ignoriert aber neue Dateien, bis die Datenbank aktualisiert wird (meist täglich per Cron). Ideal für schnelle Namenssuche nach bekannten, älteren Dateien.
find scannt das Dateisystem in Echtzeit rekursiv ab einem Startverzeichnis und filtert nach Kriterien wie Name (-name), Typ (-type f/d/l), Größe (-size), Zeitstempel (-mtime) oder Berechtigungen (-perm). Es ist langsamer, aber immer aktuell und flexibel – perfekt für komplexe, präzise Suchen oder Aktionen wie Löschen (-delete).
Wann welchen nutzen? Verwende locate für blitzschnelle Systemweite Namenssuche (z.B. locate datei.txt), wenn Aktualität zweitrangig ist. Greife zu find bei Echtzeit-Suchen, Filtern oder wenn Dateien neu sind (z.B. find /home -name "*.log" -mtime -1).
which vs. whereis vs. type -a: Programmsuche
which sucht ausschließlich im $PATH ( /home/andy/.local/bin:/home/andy/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin) nach dem ersten Treffer eines ausführbaren Programms und gibt dessen vollen Pfad aus. Es ist minimalistisch und skriptfreundlich, z.B. which ls zeigt /bin/ls.
Das Problem mit which kann sein, dass weil es den ersten Treffer in PATH wählt, es jedoch nicht das Programm ist, dass auch ausgeführt wird. type -a gibt unter anderem das alias an was sich hinter dem Programmnamen verstecken könnte, jedoch auch alle Pfade zum Programm. Wobei der erste, derjenige ist, der von der Shell genutzt wird.
$ type -a ls
ls ist ein Alias von »ls --color=auto«.
ls ist /usr/bin/ls
whereis durchsucht Standardpfade nach Binärdateien, Quellcode, Manpages und Bibliotheken eines Programms. Es liefert mehrere Orte, z.B. whereis ls zeigt /bin/ls /usr/share/man/man1/ls.1.gz. Schnell, aber auf bekannte Systempfade beschränkt.
man -k vs. apropos: Dokumentationssuche
man -k (oder apropos) sucht in den Kurzbeschreibungen aller Manpages nach Stichwörtern, z.B. man -k netzwerk listet relevante Befehle wie ip oder ss. Es hilft, unbekannte Tools zu entdecken.
apropos ist ein Alias für man -k und funktioniert identisch – reine Synonyme ohne Unterschiede.
Wann nutzen? Beide sind gleichwertig und perfekt, wenn Sie den passenden Befehl zu einem Thema suchen müssen, bevor Sie man befehl aufrufen. Ideal für Lernende oder bei vergessenen Namen.
Mit diesen Paaren deckst du 90% der Suchaufgaben ab: locate für Speed, find für Power, which/whereis für Programme und man -k/apropos für Wissen. Viel Erfolg bei deiner Suche! 🤞🏻