In Linux-Umgebungen ist es häufig erforderlich, nach bestimmten Dateitypen zu suchen, und wir wissen nicht, wie Sie diese Dateitypen richtig suchen können, ohne viel Zeit zu verschwenden.
Für Linux-Distributionen wurde der Befehl find entwickelt, mit dem Objekte im Dateisystem auf der Grundlage eines bedingten Mechanismus rekursiv gefiltert werden können. Mit diesem Befehl finden wir eine Datei oder ein Verzeichnis in Ihrem Dateisystem.
Wenn wir den Parameter -exec angeben, können die Dateien im selben Befehl sofort gefunden und verarbeitet werden.
1. Suchen Sie Dateien nach Namen oder Erweiterung von Linux-Befehlen
Wir können find über die Befehlszeile verwenden, um eine bestimmte Datei nach Name oder Erweiterung zu suchen.
Ihre Syntax lautet:
find / home / benutzername / -name "* .extension"
Zum Beispiel werden wir nach Dateien suchen, die mit .gz enden:
2. Befehle und praktische Syntax für die Suche nach Linux-Befehlen
Mit dem Befehl find haben wir einige Optionen für Parameter wie:
find options start / route expression
Das options-Attribut steuert das Verhalten und die Optimierungsmethode des Suchprozesses. Das Attribut start / path definiert das Verzeichnis der obersten Ebene, in dem find die Filterung initiiert.
Das expression-Attribut steuert die Tests, die in der Verzeichnishierarchie durchsucht werden, um eine Ausgabe zu erstellen.
Zum Beispiel können wir 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 im Pfad / var / www / nach den Dateien zu durchsuchen, die mit .html enden.
3. Optionen und Optimierung mit Linux-Befehlen suchen
In der Standardkonfiguration von Zu durchsuchende Dateien suchen werden symbolische Verknüpfungen (Direktzugriffsdateien) ignoriert. Wenn find den symbolischen Verknüpfungen folgen und sie übernehmen soll, können Sie dem Befehl die Option -L hinzufügen, wie wir zuvor gesehen haben. Find hat drei (3) Optimierungsstufen: -O1, -O2 und -O3.
Die Optimierung -O1 ist die Standardeinstellung und zwingt die Suche, basierend auf dem Dateinamen zu filtern, bevor alle anderen Tests ausgeführt werden.
Durch die Optimierung auf -O2-Ebene erhalten Dateinamenfilter wie in -O1 Vorrang. Anschließend werden alle Dateitypen gefiltert, bevor mit anderen ressourcenintensiveren Bedingungen fortgefahren wird. Die Level-Optimierung -O3 ermöglicht es find, eine tiefere Optimierung durchzuführen und ordnet alle Tests basierend auf ihrem relativen Aufwand und der Wahrscheinlichkeit besserer Ergebnisse neu.
Einige der Optionen sind:
-O1 (Standard)
-O2
-O3
-maxtiefe X
-iname
-nicht
-Typ s
-Typ d
4. Finden Sie Dateien durch Ändern der Linux-Befehlszeit
Mit dem Befehl find kann eine Verzeichnishierarchie basierend auf der letzten Änderung der Datei gefiltert werden.
Die Syntaxen sind:
find / -name "* conf" -Zeit 8 find / home / user / -name "* conf" -Zeit 2
Mit dem ersten Befehl wird eine Liste aller Dateien im gesamten Dateisystem angezeigt, die mit den Zeichen conf enden und in den letzten 8 Tagen geändert wurden. Der zweite Befehl filtert das Basisverzeichnis des Benutzers nach Dateien mit Namen, die mit conf-Zeichen enden und in den letzten zwei Tagen geändert wurden.
Wir werden die folgende Syntax verwenden:
finden -type f -exec grep "example" '{}' ; -print
Dadurch wird nach allen Objekten in der aktuellen Verzeichnishierarchie gesucht (.). Dabei handelt es sich um eine Datei (-type f). Anschließend wird für jede Datei, die die Bedingungen erfüllt, der Befehl grep “example” ausgeführt. Passende Dateien werden auf dem Bildschirm ausgedruckt (-print). Die Klammern ({}) sind ein Platzhalter für die Ergebnisse des Suchergebnisses. Das {} wird in einfache Anführungszeichen (‘) eingeschlossen, um zu vermeiden, dass grep einen ungültigen Dateinamen liefert. Der Befehl -exec wird mit einem Semikolon “(;)” beendet, das mit einem Escapezeichen “(;)” versehen werden muss, um eine Interpretation durch den Befehlsinterpreter zu vermeiden.
Ihre Syntax lautet:
finden -name "rc.conf" -exec chmod o + r '{}' ;
Dies filtert alle Objekte in der aktuellen Hierarchie (.) Für die Dateien mit dem Namen rc.conf und führt den Befehl chmod oder + r aus, um die Berechtigungen der Suchergebnisse zu ändern.
Somit ist find ein Verbündeter für die vollständige Suche von Dateien unter Linux.