GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So finden Sie eine Datei in Linux rekursiv in allen Verzeichnissen

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:

  1. ls -R :Verwenden Sie den Befehl ls, um eine rekursive Verzeichnisliste auf Linux-Systemen zu erhalten
  2. finde /dir/ -print :Verwenden Sie den find-Befehl, um rekursive Verzeichnislisten in Unix-Systemen zu sehen
  3. du -a . :Verwenden Sie den Befehl du, um rekursive Verzeichnislisten auf Unix-Systemen anzuzeigen

Originalartikel


Linux
  1. So suchen und entfernen Sie Verzeichnisse rekursiv unter Linux

  2. Wie finde ich alle Dateien mit einem bestimmten übergeordneten Verzeichnis in Linux?

  3. Linux-Befehl zum Leeren aller Dateien eines Verzeichnisses

  4. Wie kann ich alle Dateien bearbeiten, die von find in vi in ​​Linux zurückgegeben werden?

  5. Wie listet man alle Dateien einer Partition unter Linux auf?

So verschieben Sie Dateien und Verzeichnisse in Linux (mv-Befehl)

So zählen Sie Dateien im Verzeichnis in Linux

So finden Sie Dateien basierend auf dem Zeitstempel in Linux

So finden Sie Dateien, die in den letzten 24 Stunden in Linux geändert wurden

Wie man Dateien in Linux rekursiv auflistet

So kopieren Sie Dateien und Verzeichnisse im Linux-Terminal