Home » Linux » Mit GREP und FIND Dateien und Inhalte suchen und finden

Mit GREP und FIND Dateien und Inhalte suchen und finden

Heute geht es darum mit GREP und FIND Dateien und Inhalte innerhalb der Konsole zu suchen und zu finden. Die Befehle find und grep sind zwei äußerst nützliche Werkzeuge in Unix- und Linux-Systemen, mit denen Benutzer effizient nach Dateien und Inhalten suchen können. find ermöglicht es Euch, Dateien und Verzeichnisse zu suchen, während grep zum Durchsuchen des Textinhalts von Dateien verwendet wird.

Find-Befehl

Der find-Befehl in Unix und Linux wird verwendet, um Dateien und Verzeichnisse im Dateisystem zu suchen. Ihr könnt nach Dateien suchen, die bestimmten Kriterien entsprechen, einschließlich, aber nicht beschränkt auf den Namen, die Größe, den Dateityp und das Datum der letzten Änderung.

Grundlegende Nutzung von find

Die grundlegendste Nutzung von find ist, nach Dateien anhand ihres Namens zu suchen:

find /pfad/zum/suchen -name "Dateiname"

Wollt Ihr also z.B in Eurer Nextcloud nach der config.php suchen, geht das mit dem Befehl:

find /var/www/nextcloud -name config.php

Als Resltat also /var/www/yourdevice/config/config.php

Suche nach Dateitypen

Ihr könnt auch nach bestimmten Dateitypen suchen, wie z.B. Verzeichnissen (d), symbolischen Links (l), regulären Dateien (f):

find / -type f -name "Dateiname"
find / -type d -name "Verzeichnisname"

Suchen wir den Ordner plugins in einer WordPress Installation, würde das so aussehen:

find /var/www/yourdevice/ -type d -name plugins

Suche nach Größe

Der find Befehl kann auch Dateien anhand ihrer Größe finden:

find /etc/apt -size +100M

Der obige Befehl findet Dateien, die größer als 100 Megabyte sind. Nach dem Schrägstrich könnt Ihr die Suche in dem angebenen Ordner präzisieren. Ihr könnt die Befehle auch kombinieren, z.B die Suche nach einer bestimmten Datei mit einer grösse von von einer gewissen Grösse. Suchen wir z.B nach allen php Dateien mit einer grösse von 2MB in unserem WordPress Ordner, könnte das so aussehen:

find /var/www/wordpress/ -name "*.php" -size 2MB

Bitte benutzt bei Wildcardbefehlen die Anführungszeichen. Habt Ihr einen festen Namen nachdem Ihr sucht, benötigt Ihr diese nicht. Der Wildcardbefehl wäre das Sternchen was bedeutet dass nach allen Namen gesucht wird welche PHP Dateien sind.

Weitere Kombinationen sind natürlich auch möglich. Zum Beispiel lassen sich nach allen Text Datei in einen bestimmten Order suchen, und darauf die Löschfunktion anzuwenden. Möchte ich alle Text Dateien in den Dokumenten meines Homeordners löschen, würde das so aussehen:

find ~/Dokumente -name "*.txt" -exec rm {} ;

Möchtet Ihr gefragt werden ob gelöscht werden soll, verwendet den -i Schalter nach dem rm Befehl:

find ~/Dokumente -name "*.txt" -exec rm -i {} ;

Bestätigt mit y oder n

Bitte seid vorsichtig mit -exec Befehlen, besonders wenn Löschfunktionen ohne i- Schalter angewendet werden. Der Befehl löscht alles was im in den Weg kommt.

Grep-Befehl

grep steht für "Global Regular Expression Print". Mit grep könnt Ihr Text oder Ausgaben nach bestimmten Zeichenketten oder regulären Ausdrücken durchsuchen.

Grundlegende Nutzung von grep

Die grundlegende Syntax für grep ist:

grep 'suchwort' /pfad/zur/datei

Fallunempfindliche Suche

Um nach Text zu suchen, ohne auf Groß- und Kleinschreibung zu achten, verwendet den -i Schalter:

grep -i 'suchwort' /pfad/zur/datei

Wollt Ihr in Eurer nextcloud config.php z.B nach dem Ausruck Array suchen, bzw wollt wissen ob der Ausdruck darin vorkommt, geht das mit:

grep -i array /var/www/nextcloud/config/config.php

Der Rechner gibt die Zeilen aus in dem das word array enthalten ist. Falls nichts angegeben wird, ist das Suchwort nicht in der Datei enthalten.

Suche mit regulären Ausdrücken

grep kann auch reguläre Ausdrücke verwenden, um Muster in Texten zu finden. Zum Beispiel findet der folgende Befehl alle Zeilen, die ein Wort enthalten, das mit 'ab' beginnt:

grep -E 'abw*' /pfad/zur/datei

Kombination von find und grep

Die wirkliche Macht kommt zum Vorschein, wenn Ihr find und grep kombiniert. Hier ist ein einfaches Beispiel, wie Ihr diese beiden Befehle kombinieren könnt:

find /pfad/zum/suchen -type f -name "*.txt" -exec grep -i 'suchwort' {} ;

In diesem Beispiel wird find verwendet, um nach allen .txt-Dateien im angegebenen Pfad zu suchen. Dann wird grep auf jede dieser Dateien angewendet, um nach dem 'suchwort' zu suchen.

Nehmen wir an ich suche die config.php Datei der Nextcloud und möchte wissen ob darin das word smtp enthalten ist, weil ich beispielsweise die Mail-Einstellungen überprüfen möchte. Der Befehl würde so aussehen:

find /var/www/nextcloud -name config.php -exec grep -i smtp {} ;

Insgesamt sind find und grep sehr leistungsfähige Werkzeuge zur Dateisuche und Textverarbeitung in Unix- und Linux-basierten Systemen. Mit einer gründlichen Kenntnis dieser Befehle und ihrer Optionen könnt Ihr schnell durch Euer Dateisystem navigieren und Inhalte effizient finden.

Ich hoffe Euch etwas mehr Verständnis in die tiefen der Konsole gebracht zu haben. Habt Ihr Fragen? Schreibt sie in die Kommentare!

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert