📅  最后修改于: 2023-12-03 15:40:04.476000             🧑  作者: Mango
In der Programmierung ist es oft notwendig, Dateien innerhalb eines Verzeichnisses oder sogar in verschachtelten Verzeichnissen zu durchsuchen. Dieser Prozess wird als rekursive Suche bezeichnet. In der Shell oder Bash können wir eine rekursive Suche mit einigen wenigen Befehlen und Schleifen durchführen.
find
FunktionDie find
Funktion ist ein sehr nützliches Tool zur Suche von Dateien und Verzeichnissen in Unix-basierten Betriebssystemen. Es wird normalerweise auf der Befehlszeile ausgeführt und kann eine breite Palette von Verwendungszwecken abdecken, einschließlich rekursiver Suche.
Hier ist ein Beispiel, wie die find
Funktion verwendet werden kann, um eine rekursive Suche durchzuführen:
find /path/to/search -type f -name "*.txt"
Dieser Befehl sucht im Verzeichnis /path/to/search
nach allen Dateien, die mit der Erweiterung .txt
enden. Der Parameter -type f
sorgt dafür, dass nur Dateien und nicht Verzeichnisse durchsucht werden. Sie können andere Parameter hinzufügen, um Ihre Suche zu definieren, z. B. -mtime
für die Suche nach zuletzt geänderten Dateien oder -user
für die Suche nach Dateien eines bestimmten Benutzers.
for
SchleifeEine andere Möglichkeit, eine rekursive Suche in der Shell durchzuführen, besteht darin, eine for
Schleife zu verwenden. Diese Schleife kann verwendet werden, um die Dateien und Verzeichnisse in einem bestimmten Verzeichnis zu durchlaufen.
Hier ist ein Beispiel, wie man eine for
Schleife verwenden kann, um eine rekursive Suche durchzuführen:
for file in /path/to/search/*; do
if [ -d "$file" ]; then
# Wenn es sich bei $file um ein Verzeichnis handelt, führen Sie die Schleife rekursiv aus
search_recursive "$file"
elif [ -f "$file" ]; then
# Wenn es sich bei $file um eine Datei handelt, führen Sie die gewünschten Aktionen aus
echo "$file"
fi
done
Hier wird die for
Schleife verwendet, um alle Dateien und Verzeichnisse im Verzeichnis /path/to/search
zu durchlaufen. Wenn es sich bei dem durchlaufenen Element um ein Verzeichnis handelt, wird die Schleife rekursiv aufgerufen, um auch die Dateien in diesem Verzeichnis zu durchlaufen. Wenn es sich bei dem Element um eine Datei handelt, können Sie die gewünschten Aktionen durchführen, z. B. den Pfad zur Datei ausgeben.
In diesem Artikel haben wir zwei Methoden zur Durchführung einer rekursiven Suche in der Shell gezeigt. Die find
Funktion ist das gebräuchlichste Tool zur Durchführung einer rekursiven Suche, während die for
Schleife ebenfalls verwendet werden kann und eine nützliche Funktion darstellt, wenn Sie die Suche an Ihre eigenen Bedürfnisse anpassen möchten.