Linux find-Befehl: Dateisuche

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie sich auf die Reise als digitaler Detektiv begeben und lernen, den leistungsstarken find-Befehl in Linux zu nutzen. Der find-Befehl ist ein unverzichtbares Werkzeug, um Dateien und Verzeichnisse anhand verschiedener Kriterien zu finden. Am Ende dieser Abenteuer werden Sie über die Fähigkeiten verfügen, auch die komplexesten Dateisysteme mühelos durchsuchen zu können. Dieses Lab ist für Anfänger konzipiert, also keine Sorge, wenn Sie neu in Linux sind – wir werden Sie Schritt für Schritt sorgfältig durchführen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/find("File Searching") subgraph Lab Skills linux/cd -.-> lab-219191{{"Linux find-Befehl: Dateisuche"}} linux/find -.-> lab-219191{{"Linux find-Befehl: Dateisuche"}} end

Erste Schritte mit find

Beginnen wir unsere Detektivarbeit, indem wir die Grundnutzung des find-Befehls verstehen. Stellen Sie sich vor, Sie suchen nach einem entscheidenden Beweisstück an einer digitalen Kriminalitätsstelle.

Zunächst navigieren wir zu unserem Untersuchungshauptquartier. In Linux verwenden wir den cd-Befehl, um das Verzeichnis zu ändern. Geben Sie den folgenden Befehl ein und drücken Sie Enter:

cd /home/labex/project

Dieser Befehl bringt Sie in das Verzeichnis /home/labex/project, das unser Arbeitsverzeichnis für dieses Lab sein wird. Wenn Sie sich jederzeit überprüfen möchten, wo Sie sich befinden, können Sie den pwd-Befehl verwenden, um Ihr aktuelles Arbeitsverzeichnis auszugeben.

Nun verwenden wir den find-Befehl, um eine Datei namens "clue.txt" zu finden:

find. -name "clue.txt"

Lassen Sie uns diesen Befehl zerlegen:

  • find ist der Befehl, den wir verwenden
  • . teilt find mit, die Suche im aktuellen Verzeichnis zu beginnen
  • -name "clue.txt" teilt find mit, nach einer Datei mit genau dem Namen "clue.txt" zu suchen

Nachdem Sie diesen Befehl ausgeführt haben, sollten Sie eine Ausgabe wie diese sehen:

./evidence/clue.txt

Diese Ausgabe sagt uns, dass eine Datei namens "clue.txt" im Unterverzeichnis "evidence" unseres aktuellen Speicherorts gefunden wurde. Das ./ am Anfang des Pfads bedeutet "beginnend im aktuellen Verzeichnis".

Wenn Sie keine Ausgabe sehen, keine Sorge! Das bedeutet nur, dass die Datei im aktuellen Verzeichnis oder seinen Unterverzeichnissen nicht gefunden wurde. Bei einer echten Untersuchung könnte das bedeuten, dass Sie woanders nach Ihrem Hinweis suchen müssen. Sie könnten versuchen, von einem anderen Verzeichnis aus zu suchen oder überprüfen, ob Sie den Dateinamen richtig eingegeben haben.

Suchen nach mehreren Dateitypen

Während unsere Untersuchung tiefergeht, müssen wir mehrere Arten von Beweisdateien finden. In diesem Schritt lernen wir, wie wir den find-Befehl mit Platzhaltern verwenden, um nach Dateien mit verschiedenen Erweiterungen zu suchen.

Lassen Sie uns den find-Befehl verwenden, um nach Dateien mit den Erweiterungen.txt und.log zu suchen:

find. -name "*.txt" -o -name "*.log"

Lassen Sie uns diesen neuen, komplexeren Befehl zerlegen:

  • find. ist wie zuvor und teilt find mit, die Suche im aktuellen Verzeichnis zu beginnen
  • -name "*.txt" sucht nach allen Dateien, die mit.txt enden
  • -o bedeutet "oder" in der Syntax des find-Befehls
  • -name "*.log" sucht nach allen Dateien, die mit.log enden

Das * ist ein Platzhalterzeichen, das eine beliebige Anzahl von Zeichen entspricht. Also entspricht *.txt jeder Datei, die mit.txt endet, unabhängig davon, was davor steht. Dies ist sehr nützlich, wenn Sie nicht sicher sind, wie der genaue Dateiname lautet, aber die Dateierweiterung kennen.

Nachdem Sie diesen Befehl ausgeführt haben, sollten Sie eine Ausgabe ähnlich wie diese sehen:

./evidence/clue.txt
./evidence/new_lead.txt
./logs/system.log
./logs/recent_activity.log
./notes/interview.txt

Diese Ausgabe zeigt uns alle.txt- und.log-Dateien in unserem aktuellen Verzeichnis und seinen Unterverzeichnissen. Jede Zeile ist der Pfad zu einer Datei, die unseren Suchkriterien entspricht.

Wenn Sie andere oder weniger Dateien sehen, keine Sorge. Wichtig ist, dass Sie sowohl.txt- als auch.log-Dateien in der Ausgabe sehen. Die tatsächlichen Dateien können je nach Ihrer spezifischen Einrichtung variieren.

Finden von Dateien nach Größe

Im nächsten Schritt suchen wir nach großen Dateien, die möglicherweise wichtige Daten enthalten. Große Dateien können Datenbanken, Archive oder andere erhebliche Beweisstücke in unserer Untersuchung sein.

Lassen Sie uns alle Dateien finden, die größer als 1 Megabyte sind:

find. -type f -size +1M

Lassen Sie uns diesen Befehl zerlegen:

  • find. ist unser vertrauter Ausgangspunkt
  • -type f teilt find mit, nur nach normalen Dateien zu suchen (keine Verzeichnisse oder andere spezielle Typen)
  • -size +1M gibt an, dass wir Dateien größer als 1 Megabyte möchten

Das + vor 1M bedeutet "größer als". Wenn wir Dateien genau 1 Megabyte groß wollten, würden wir 1M verwenden, und für Dateien kleiner als 1 Megabyte würden wir -1M verwenden. Sie können auch andere Größenangaben wie k für Kilobyte oder G für Gigabyte verwenden.

Nachdem Sie diesen Befehl ausgeführt haben, sollten Sie eine Ausgabe wie diese sehen:

./evidence/large_file.dat

Diese Ausgabe zeigt uns, dass es in unserem Untersuchungsverzeichnis eine Datei größer als 1 Megabyte gibt. Die .dat-Erweiterung deutet oft auf eine Daten-Datei hin, die in unserer Untersuchung von Bedeutung sein könnte.

Wenn Sie keine Ausgabe sehen, keine Sorge! Das bedeutet nur, dass es keine Dateien größer als 1 Megabyte im aktuellen Verzeichnis und seinen Unterverzeichnissen gibt. In einer realen Situation müssen Sie möglicherweise den Größeparameter anpassen oder in anderen Verzeichnissen suchen.

Finden von kürzlich geänderten Dateien

Als Detektive interessieren wir uns oft für die neuesten Aktivitäten. In diesem Schritt lernen wir, wie wir Dateien finden, die kürzlich geändert wurden. Dies kann uns Hinweise auf die neuesten Entwicklungen in unserem Fall geben.

Lassen Sie uns Dateien finden, die in den letzten 24 Stunden geändert wurden:

find. -type f -mtime -1

Zerlegen wir diesen Befehl:

  • find. und -type f kennen wir bereits
  • -mtime -1 ist neu. Es teilt find mit, nach Dateien zu suchen, die weniger als 1 Tag her geändert wurden

Die Option -mtime misst die Zeit in 24-Stunden-Schritten. Das -1 bedeutet "weniger als 1 Tag her". Wenn wir Dateien wollten, die genau 1 Tag her geändert wurden, würden wir -mtime 1 verwenden, und für Dateien, die mehr als 1 Tag her geändert wurden, würden wir -mtime +1 verwenden.

Nachdem Sie diesen Befehl ausgeführt haben, könnten Sie eine Ausgabe ähnlich wie diese sehen:

./evidence/clue.txt
./evidence/large_file.dat
./evidence/new_lead.txt
./logs/system.log
./logs/recent_activity.log
./notes/interview.txt

Diese Ausgabe zeigt uns die Dateien, die in den letzten 24 Stunden geändert wurden. Dies könnten unsere heißesten Spuren sein! Jede dieser Dateien könnte aktuelle Informationen enthalten, die für unsere Untersuchung von entscheidender Bedeutung sind.

Wenn Sie keine Ausgabe sehen, bedeutet dies, dass keine Dateien in den letzten 24 Stunden geändert wurden. Bei einer realen Untersuchung könnte dies auf eine inaktive Phase hinweisen, oder es könnte bedeuten, dass wir unsere Suchparameter erweitern müssen.

Ausführen von Befehlen auf gefundenen Dateien

Jetzt kombinieren wir unsere Detektivfähigkeiten mit einer forensischen Analyse. Wir verwenden den find-Befehl, um alle.txt-Dateien zu finden, und dann den cat-Befehl, um ihren Inhalt anzuzeigen. Dies ist wie das schnelle Durchsuchen aller gefundenen Textdokumente nach Hinweisen.

Hier ist der Befehl:

find. -name "*.txt" -exec cat {} \;

Dieser Befehl sieht komplex aus, also lassen Sie uns ihn zerlegen:

  • find. -name "*.txt" kennen wir bereits – es findet alle.txt-Dateien
  • -exec cat {} \; ist neu. Es teilt find mit, den cat-Befehl für jede gefundene Datei auszuführen
    • cat ist ein Befehl, der den Inhalt einer Datei anzeigt
    • {} ist ein Platzhalter, den find durch jeden gefundenen Dateinamen ersetzt
    • \; markiert das Ende des -exec-Befehls

Nachdem Sie diesen Befehl ausgeführt haben, sollten Sie den Inhalt aller.txt-Dateien sehen, etwa so:

The suspect was last seen wearing a red hat.
New lead: Check the security camera footage from the back alley.
Witness reported hearing a loud noise at approximately 10 PM.

Jeder Textblock, den Sie sehen, ist der Inhalt einer anderen.txt-Datei. Dieser Befehl ermöglicht es uns, den Inhalt aller Textdateien schnell zu überprüfen, ohne jede einzeln öffnen zu müssen.

Wenn Sie sich fragen, warum wir am Ende \; verwenden, ist das, um find zu sagen, wo der Befehl für -exec endet. Ohne es würde find nicht wissen, ob wir noch mehr mit den Dateien tun möchten.

Zusammenfassung

Herzlichen Glückwunsch, Detektiv! In diesem Lab haben Sie sich mit dem find-Befehl, einem leistungsstarken Werkzeug in Ihrem Linux-Werkzeugkasten, vertraut gemacht. Sie haben gelernt, wie Sie:

  1. Nach Dateien anhand des Namens suchen
  2. Mit Platzhaltern mehrere Dateitypen finden
  3. Dateien anhand der Größe lokalisieren
  4. Kürzlich geänderte Dateien identifizieren
  5. Befehle auf gefundenen Dateien ausführen

Diese Fähigkeiten werden Ihnen bei der Dateiverwaltung, der Systemfehlersuche und ja, sogar bei der Lösung digitaler Rätsel gut dienen!

Zusätzliche Optionen des find-Befehls, die in diesem Lab nicht behandelt wurden, sind:

  • -user: Suche Dateien, die einem bestimmten Benutzer gehören
  • -group: Suche Dateien, die einer bestimmten Gruppe gehören
  • -perm: Suche Dateien mit bestimmten Berechtigungen
  • -maxdepth: Begrenze die Tiefe der Verzeichnisdurchsuchung
  • -mindepth: Beginne die Suche ab einer Mindesttiefe
  • -empty: Suche leere Dateien oder Verzeichnisse
  • -newer: Suche Dateien, die neuer als eine angegebene Datei sind

Denken Sie daran, Übung macht den Meister. Experimentieren Sie gerne mit diesen Befehlen in verschiedenen Verzeichnissen, um sich besser damit vertraut zu machen. Je öfter Sie find verwenden, desto mehr werden Sie seine Macht und Flexibilität entdecken, die Ihnen helfen, genau das zu finden, was Sie in einem komplexen Dateisystem benötigen.