Linux — ein Open-Source-Betriebssystem, das in verschiedenen Tätigkeitsbereichen weit verbreitet ist. Eine der wichtigsten Aufgaben, mit denen Linux-Benutzer häufig konfrontiert sind, besteht darin, nach Dateien anhand ihres Inhalts zu suchen. Für diese Zwecke gibt es viele Dienstprogramme unter Linux, von denen eines der Befehl ist find.
Das Team find ermöglicht die Suche nach Dateien im Linux-Dateisystem nach verschiedenen Parametern, einschließlich Dateiname, Größe, Erstellungsdatum und Änderungsdatum. Die nützlichste Funktion des Befehls ist jedoch find ist die Suche nach dem Inhalt der Datei. Auf diese Weise können Sie Dateien finden, die eine bestimmte Zeichenfolge oder ein bestimmtes Muster enthalten.
Um nach dem Inhalt einer Datei zu suchen, verwenden Sie den Befehl find sie müssen eine Option angeben -exec grep und einen Suchbegriff festlegen. Wenn Sie beispielsweise nach Dateien suchen möchten, die die Zeichenfolge "hello world" enthalten, führen Sie den folgenden Befehl aus: find /path/to/directory -type f -exec grep "hello world" <> \;. Dadurch werden alle Dateien angezeigt, die die angegebene Zeile im angegebenen Verzeichnis und seinen Unterverzeichnissen enthalten.
Das Team find ist ein leistungsfähiges Werkzeug, um Dateien in Linux zu finden. Durchsuchen des Dateiinhalts mithilfe des Befehls find ermöglicht die effiziente Suche nach Dateien nach bestimmten Parametern und das Auffinden der benötigten Informationen in großen Datenmengen.
Der Befehl find, um nach Inhalten in Linux-Dateien zu suchen
Verwenden Sie die Option -exec und den Befehl grep, um Inhalte in Dateien mit dem Befehl find zu suchen.
Beispiel für die Verwendung des Befehls find, um nach Dateien zu suchen, die ein bestimmtes Wort enthalten:
find /Verzeichnispfad -type f -exec grep -l "gesuchter Inhalt" <> \;
In diesem Beispiel:
- /pfad zu Verzeichnis - pfad zu dem Verzeichnis, in dem gesucht werden soll;
- -type f - weist den Befehl find an, nur nach Dateien (nicht nach Verzeichnissen) zu suchen;
- -exec grep -l "gesuchter Inhalt" <> \; - führt den Befehl grep mit dem Parameter -l (list) aus, der nur die Namen der Dateien anzeigt, die den gewünschten Inhalt enthalten. Hier ist <> ein Platzhalterzeichen für die gefundenen Dateien und \; verweist auf das Ende des Befehls -exec.
Daher können Sie mit dem Befehl find den Inhalt von Dateien unter Linux durchsuchen, was nützlich sein kann, wenn Sie nach bestimmten Informationen in einer großen Anzahl von Dateien suchen oder bei Bedarf nach Dateien suchen, die bestimmte Schlüsselphrasen oder Wörter enthalten.
Grundlagen des Befehls find
Grundlegende Parameter des Befehls find:
| Parameter | Die Beschreibung |
|---|---|
| -name "pattern" | Sucht nach Dateien und Verzeichnissen nach dem im Muster "pattern" angegebenen Namen. |
| -type "type" | Sucht nach Dateien und Verzeichnissen eines bestimmten Typs. Gültige Werte sind f (normale Datei), d (Verzeichnis), l (symbolischer Link). |
| -size "size" | Suche nach Dateien nach Größe. Die Größe kann in Bytes (c), Kilobyte (k), Megabyte (M), Gigabyte (G) usw. angegeben werden. |
| -mtime "time" | Suchen nach Dateien nach der letzten Änderung. Die Uhrzeit kann in Tagen (für + und - Parameter) oder in Stunden (für numerische Werte) angegeben werden. |
Suchen nach Dateinamen mit dem Befehl find
Der Befehl find unter Linux bietet die Möglichkeit, Dateien anhand verschiedener Parameter zu suchen, einschließlich des Dateinamens. Dies ist sehr nützlich, wenn Sie alle Dateien mit einem bestimmten Namen in einem bestimmten Verzeichnis oder Unterverzeichnissen suchen müssen.
Um mit dem Befehl find nach einem Dateinamen zu suchen, müssen Sie die Option -name verwenden, gefolgt von dem Dateinamen, nach dem Sie suchen möchten. Zum Beispiel:
find /path/to/directory -name "filename"
Hier ist "/path/to/directory" der Pfad zu dem Verzeichnis, in dem Sie suchen möchten, und "filename" ist der Dateiname, nach dem Sie suchen. Sie können auch Vorlagen verwenden, um eine teilweise Übereinstimmung des Dateinamens anzugeben.
Der Befehl find sucht nach Dateien mit dem angegebenen Namen innerhalb des angegebenen Verzeichnisses und aller seiner Unterverzeichnisse. Wenn Sie die Suche auf eine bestimmte Verschachtelungsebene beschränken möchten, können Sie die Option -maxdepth hinzufügen und die gewünschte Anzahl von Ebenen angeben. Zum Beispiel:
find /path/to/directory -maxdepth 2 -name "filename"
Dieser Befehl findet nur Dateien mit dem angegebenen Namen auf der aktuellen Verzeichnisebene und der ersten Unterverzeichnisebene.
Das Suchen nach einem Dateinamen mit dem Befehl find ist ein sehr leistungsfähiges und flexibles Werkzeug, das in verschiedenen Situationen sehr nützlich sein kann. Es ermöglicht Ihnen, die benötigten Dateien schnell zu finden und die Arbeit mit dem Dateisystem unter Linux zu vereinfachen.
Suchen des Dateiinhalts nach Schlüsselwörtern im Befehl find
Mit dem Befehl find unter Linux können Sie nach Dateien nach verschiedenen Kriterien suchen, einschließlich Name, Typ, Größe und Änderungsdatum. Manchmal ist es jedoch erforderlich, Dateien zu finden, die bestimmte Schlüsselwörter oder Phrasen in sich selbst enthalten. In diesem Fall können Sie die Option -exec zusammen mit dem Befehl grep verwenden, um nach dem Inhalt der Datei zu suchen.
Zunächst müssen Sie den Pfad angeben, nach dem Sie suchen möchten. Zum Beispiel der Befehl:
- find /path/to/directory -type f
sucht nur nach Dateien im angegebenen Verzeichnis und seinen Unterverzeichnissen.
Als nächstes müssen Sie die Option -exec hinzufügen, gefolgt vom Befehl grep:
- find /path/to/directory -type f -exec grep "keyword" <> +
In diesem Fall muss das Schlüsselwort "keyword" durch ein Wort oder eine Phrase ersetzt werden, die Sie benötigen. Der Befehl sucht nach Dateien, die das angegebene Schlüsselwort enthalten.
Die Option <> wird durch jede gefundene Datei ersetzt, und das + -Zeichen gibt an, dass der Befehl grep für alle Dateien gleichzeitig ausgeführt werden muss, nicht einzeln.
- find /path/to/directory -type f -exec grep "Hello, world!" <> +
sucht nach Dateien, die den Ausdruck "Hallo, Welt!".
Wenn Sie also den Befehl find mit dem Befehl grep kombinieren, können Sie Dateien finden, die Schlüsselwörter oder Phrasen enthalten, was bei der Arbeit mit vielen Dateien nützlich sein kann.
Einschränken der Suche nach Dateityp mit dem Befehl find
Um die Suche auf bestimmte Dateitypen zu beschränken, verwenden Sie die Option -type des Befehls find . Diese Option kann folgende Werte annehmen:
| Bedeutung | Die Beschreibung |
|---|---|
| f | Datei |
| d | Katalog |
| l | Symbolischer Link |
| b | Blockgerät |
| c | Zeichengerät |
| s | Sockel |
| p | Rohr (FIFO) |
Um beispielsweise alle Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen zu finden, können Sie den folgenden Befehl verwenden:
find . -type f
Dieser Befehl gibt eine Liste aller normalen Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen zurück.
Wenn Sie nur Verzeichnisse finden müssen, können Sie die Option -type d verwenden :
find . -type d
Auf diese Weise gibt der Befehl eine Liste aller Verzeichnisse im aktuellen Verzeichnis und seinen Unterverzeichnissen zurück.
Nachdem Sie sich mit dieser Suchbegrenzung vertraut gemacht haben, können Sie genau angeben, auf welche Dateien oder Verzeichnisse der Befehl find angewendet werden soll. Dadurch können Sie den Suchprozess flexibler verwalten und genaue Ergebnisse erzielen.
Suchen nach Dateien, die in einem bestimmten Zeitraum mit dem Befehl find geändert wurden
Verwenden Sie die Option -mtime des Befehls find, um nach Dateien zu suchen, die in einem bestimmten Zeitraum geändert wurden. Die Modifikatoren dieses Parameters ermöglichen die Angabe von Zeitintervallen mit unterschiedlichen Flexibilität.
Die Syntax des Befehls find zum Suchen nach Dateien, die in einem bestimmten Zeitraum geändert wurden, lautet wie folgt:
- find [Pfad] -type f -mtime [n]
- [Pfad] - der Pfad des Verzeichnisses, in dem gesucht wird. Wenn kein Pfad angegeben ist, wird im aktuellen Verzeichnis gesucht;
- -type f - Suche nur nach Dateien, ausgenommen Verzeichnisse;
- -mtime [n] - suchen Sie nach Dateien, die in den letzten Jahren geändert wurden [n] Tage. + Vorzeichen [n] zeigt an, dass nach Dateien gesucht wird, die mehr als geändert wurden [n] vor Tagen, und das Zeichen ist - auf Dateien, die weniger als geändert wurden [n] vor Tagen.
Beispiele für die Verwendung des Befehls find:
- Finden Sie alle Dateien, die in den letzten 7 Tagen geändert wurden:
find /path/to/directory -type f -mtime -7 - Alle Dateien finden, die vor mehr als 30 Tagen geändert wurden:
find /path/to/directory -type f -mtime +30
Mit dem Befehl find können Sie die Suche nach Dateien anpassen, die in einem bestimmten Zeitraum geändert wurden, mit hoher Flexibilität. Dies ist besonders nützlich, wenn Sie alle Dateien finden müssen, die an einem bestimmten Tag oder zu einem bestimmten Zeitpunkt geändert wurden.