Inter-Data >
Blog > Dateien in allen Unterverzeichnissen unter Linux/Unix finden
Dateien in allen Unterverzeichnissen unter Linux/Unix finden
Alle Dateien mit einer speziellen Dateiendung in allen Unterverzeichnissen unter Linux/Unix finden
Beispiel:
Wenn Sie alle Markdown-Dateien in Ihrem HugoCMS-Projekt finden möchten, die als Entwurf gekennzeichnet sind, könnten Sie diesen Befehl verwenden
find . -type f -name '*.md' -exec grep -l 'draft: true' {} \;
Dieser Befehl durchsucht das aktuelle Verzeichnis und alle Unterverzeichnisse nach Markdown-Dateien (*.md
) und prüft jede dieser Dateien, ob sie die Zeile 'draft: true'
enthält. Wenn dies der Fall ist, wird der Name der Datei ausgegeben. Dieser Befehl ist nützlich, um Dateien zu identifizieren, die als Entwurf gekennzeichnet sind, z.B. in einem Blog oder Dokumentationssystem, das Markdown-Dateien verwendet.
Detaillierte Erklärung:
-
find .
(Punkt):- Der Befehl
find
durchsucht Verzeichnisse und Dateien. .
(Punkt) gibt an, dass die Suche im aktuellen Verzeichnis beginnt und alle Unterverzeichnisse einbezieht.
- Der Befehl
-
-type f
:- Diese Option beschränkt die Suche auf reguläre Dateien (
f
steht für “file”). - Verzeichnisse, symbolische Links oder andere Dateitypen werden ignoriert.
- Diese Option beschränkt die Suche auf reguläre Dateien (
-
-name '*.md'
:- Diese Option filtert die Suche nach Dateien, deren Namen mit der Endung
.md
(Markdown-Dateien) übereinstimmen. - Der Name wird mit einem Muster verglichen, wobei
*
als Platzhalter für beliebige Zeichenfolgen dient.
- Diese Option filtert die Suche nach Dateien, deren Namen mit der Endung
-
-exec
:- Diese Option ermöglicht das Ausführen eines Befehls für jede Datei, die von
find
gefunden wird. - In diesem Fall wird der
grep
-Befehl für jede Markdown-Datei ausgeführt.
- Diese Option ermöglicht das Ausführen eines Befehls für jede Datei, die von
-
grep -l 'draft: true' {}
:grep
ist ein Befehl zum Durchsuchen von Textdateien nach einem bestimmten Muster.-l
ist eine Option, die bewirkt, dassgrep
nur die Namen der Dateien ausgibt, in denen das Muster'draft: true'
gefunden wird.'draft: true'
ist der Suchbegriff, nach dem in den Dateien gesucht wird. Dies könnte z.B. in Markdown-Dateien verwendet werden, um Beiträge als Entwurf zu kennzeichnen.{}
ist ein Platzhalter, der durch den Namen der aktuellen Datei ersetzt wird, diefind
gefunden hat.
-
\;
:- Dies beendet die
-exec
Anweisung. - Der
\;
signalisiert, dass derexec
-Block abgeschlossen ist und der Befehl für jede einzelne gefundene Datei separat ausgeführt werden soll.
- Dies beendet die