So finden Sie Dateien in Unterverzeichnissen Linux – Suchen Sie Dateien rekursiv in Linux. Hier ist der Unix-Befehl, um eine Datei in einem Verzeichnis und Unterverzeichnis zu finden.
Was ist die rekursive Auflistung eines Verzeichnisses
Rekursiv bedeutet, wenn ein Verzeichnis Unterverzeichnisse und Dateien hat, wird der Befehl ausgeführt und auch auf diese Dateien angewendet (rekursiv).
Der einfachste Weg, die Liste der Dateien und Unterverzeichnisse in einem bestimmten Verzeichnis anzuzeigen, ist die Verwendung des Befehls tree.
Tree ist ein rekursives Programm zum Auflisten von Verzeichnissen, das eine tief eingerückte Liste von Dateien erstellt. Ohne Argumente listet tree die Dateien im aktuellen Verzeichnis auf. Wenn Verzeichnisargumente angegeben werden, listet tree nacheinander alle Dateien und/oder Verzeichnisse auf, die in den angegebenen Verzeichnissen gefunden werden. Nach Abschluss der Auflistung aller gefundenen Dateien/Verzeichnisse gibt tree die Gesamtzahl der aufgelisteten Dateien und/oder Verzeichnisse zurück.
Baumbefehl
Hier ist eine einfachere Möglichkeit, die rekursive Suche mit dem Baumbefehl durchzuführen:
tree -a
Wenn -a mit dem Baumbefehl verwendet wird, werden alle Dateien gedruckt. Standardmäßig druckt der Baum keine versteckten Dateien (die mit einem Punkt .’ beginnen). Außerdem druckt der Baum in keinem Fall die Dateisystemkonstrukte.’ (aktuelles Verzeichnis) und `..’ (vorheriges Verzeichnis).
Kombinieren Sie „find“ und „grep“
Sie können unter Linux auch eine Kombination aus zwei Befehlen verwenden – find
und grep
Befehle, um Unterverzeichnisse rekursiv nach Dateien zu durchsuchen, die mit einem grep
übereinstimmen Muster (mit dem Argument bereitgestellt):
find . -type f -exec grep -l 'directory_name' {} ;
Dieser Befehl macht die Aufgabe sehr einfach. Es durchsucht alle Dateien in allen Unterverzeichnissen des aktuellen Verzeichnisses und gibt die Dateinamen aus. Es ist ein großartiger Satz von Befehlen zum rekursiven Durchsuchen von Dateien in allen Unterverzeichnissen.
Andere Befehle zum rekursiven Suchen nach Dateien
Es gibt viele andere Befehle, um Dateien rekursiv zu finden. Benutzer von Linux Ubuntu können einen der folgenden Befehle verwenden:
- ls -R :Verwenden Sie den Befehl ls, um eine rekursive Verzeichnisliste auf Linux-Systemen zu erhalten
- finde /dir/ -print :Verwenden Sie den find-Befehl, um rekursive Verzeichnislisten in Unix-Systemen zu sehen
- du -a . :Verwenden Sie den Befehl du, um rekursive Verzeichnislisten auf Unix-Systemen anzuzeigen
Originalartikel