Oftmals ist es notwendig, in Linux-Umgebungen nach bestimmten Dateitypen zu suchen, und wir wissen nicht, wie man sie richtig durchsuchen kann, ohne Zeit zu verschwenden.
Für Linux-Distributionen wurde ein Befehl namens find entwickelt, der entwickelt wurde, um Objekte im Dateisystem basierend auf einem bedingten Mechanismus rekursiv zu filtern. Mit diesem find-Befehl können wir nach einer Datei oder einem Verzeichnis in seinem Dateisystem suchen.
Wenn wir den Parameter -exec einschließen, können die Dateien sofort innerhalb desselben Befehls gefunden und verarbeitet werden.
1. Dateien nach Namen oder Erweiterungen suchen Linux-Befehle
Wir können find über die Befehlszeile verwenden, um eine bestimmte Datei nach Name oder Erweiterung zu suchen.
Seine Syntax lautet:
find / home / username / -name "* .extension"Zum Beispiel suchen wir nach Dateien mit der Endung .gz:
VERGRÖSSERN
2. Praktische Befehle und Syntax zur Verwendung mit find Linux-Befehlen
Mit dem Befehl find haben wir einige Parameteroptionen wie:
Optionen finden Start-/PfadausdruckDas Optionsattribut steuert das Verhalten und die Optimierungsmethode des Suchprozesses. Das Attribut home / path definiert das Verzeichnis der obersten Ebene, in dem find mit der Filterung beginnt.
Das Ausdrucksattribut steuert die Tests, die die Verzeichnishierarchie durchsuchen, um eine Ausgabe zu erzeugen.
Wir können beispielsweise Folgendes ausführen:
find -O3 -L / var / www / -name "* .html"Dieser Befehl aktiviert die maximale Optimierungsstufe (-O3) und ermöglicht es Ihnen, den symbolischen Links (-L) zu folgen, um den gesamten Verzeichnisbaum unter dem Pfad /var/www/ nach Dateien mit der Endung .html zu durchsuchen.
VERGRÖSSERN
3. Optionen und Optimierung mit Find Linux-Befehlen
Die Standardkonfiguration von Find für die Suche ignoriert die symbolischen Links (Shortcut-Dateien). Wenn wir möchten, dass find den symbolischen Links folgt und die symbolischen Links verwendet, können wir die Option -L zum Befehl hinzufügen, wie wir zuvor gesehen haben. Find hat drei (3) Optimierungsstufen, die -O1, -O2 und -O3 sind.
Die -O1-Optimierung ist die Standardeinstellung und zwingt Sie, nach Dateinamen zu filtern, bevor Sie alle anderen Tests ausführen.
Die Optimierung auf der Ebene -O2 priorisiert Dateinamenfilter wie in -O1 und führt dann alle Dateitypfilterungen aus, bevor mit anderen ressourcenintensiveren Bedingungen fortgefahren wird. Die -O3-Level-Optimierung ermöglicht es find, eine tiefere Optimierung durchzuführen und alle Tests basierend auf ihren relativen Ausgaben und der Wahrscheinlichkeit besserer Ergebnisse neu anzuordnen.
Einige der Optionen sind:
Es ist ein Filter basierend auf dem ersten Dateinamen
-O1 (Standard)
Verwenden Sie zuerst den Dateinamen und dann den Dateityp
-O2
Ergebnisse neu anordnenErmöglicht die automatische Neuordnung der Suche basierend auf der effizienten Nutzung der Ressourcen und der Wahrscheinlichkeit besserer Ergebnisse.
-O3
Durchsucht das aktuelle Verzeichnis sowie alle Unterverzeichnisse X Ebenen tief
-maxTiefe X
Suche unabhängig von der Groß-/Kleinschreibung des Textes
-iname
Gibt nur die Ergebnisse zurück, die nicht mit dem Testfall übereinstimmen
-nicht
Führen Sie eine Dateisuche durch
-typ f
Verzeichnisse durchsuchen
-typ d
4. Finden Sie Dateien durch Zeitänderung Linux-Befehle
Der Befehl find kann eine Verzeichnishierarchie basierend auf der letzten Änderung der Datei filtern.
Die Syntax lautet:
find / -name "* conf" -mtime 8 find / home / user / -name "* conf" -mtime 2Der erste Befehl zeigt eine Liste aller Dateien im gesamten Dateisystem an, die mit conf-Zeichen enden und in den letzten 8 Tagen geändert wurden. Der zweite Befehl filtert das Home-Verzeichnis des Benutzers nach Dateien mit Namen, die mit conf-Zeichen enden und in den letzten 2 Tagen geändert wurden.
Verwenden Sie Grep, um inhaltsbasierte Dateien zu finden Linux-BefehleDer Befehl find kann die Verzeichnishierarchie nur basierend auf einem Dateinamen und Metadaten filtern. Wenn Sie also basierend auf dem Dateiinhalt suchen müssen, verwenden Sie ein Tool wie grep.
Wir verwenden die folgende Syntax:
finden. -type f -exec grep "Beispiel" '{}' \; -druckenDieser findet alle Objekte in der aktuellen Verzeichnishierarchie (.), die eine Datei ist (-Typ f) und führt dann den grep-Befehl "example" für jede Datei aus, die die Bedingungen erfüllt. Passende Dateien werden auf den Bildschirm gedruckt (-print). Klammern ({}) sind ein Platzhalter für die Suchergebnisse. Das {} wird in einfache Anführungszeichen (') eingeschlossen, um zu vermeiden, dass grep einen falsch formatierten Dateinamen wiedergibt. Der Befehl -exec wird mit einem Semikolon "(;)" abgeschlossen, das mit "(\;)" maskiert werden muss, um eine Interpretation durch die Shell zu vermeiden.
So finden und verarbeiten Sie Dateien mit dem Find-Befehl Linux-BefehleWir können die Option -exec verwenden, um Befehle für alle Objekte auszuführen, die dem Suchausdruck entsprechen.
Seine Syntax lautet:
finden. -name "rc.conf" -exec chmod o + r '{}' \;Dadurch werden alle Objekte in der aktuellen Hierarchie (.) nach Dateien namens rc.conf gefiltert und der Befehl chmod oder + r ausgeführt, um die Berechtigungen der Suchergebnisse zu ändern.
find ist also ein Verbündeter für die vollständige Dateisuche unter Linux.