-> 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
Autor: DS
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
finddurchsucht 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 (
fsteht 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
findgefunden 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' {}:grepist ein Befehl zum Durchsuchen von Textdateien nach einem bestimmten Muster.-list eine Option, die bewirkt, dassgrepnur 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, diefindgefunden hat.
-
\;:- Dies beendet die
-execAnweisung. - Der
\;signalisiert, dass derexec-Block abgeschlossen ist und der Befehl für jede einzelne gefundene Datei separat ausgeführt werden soll.
- Dies beendet die
