Wie können wir über die Unterverzeichnisse des gegebenen Verzeichnisses iterieren und die Dateien in diesen Unterverzeichnissen in Bash erhalten. Kann ich das mit dem Befehl grep machen?
Antworten
Zu viele Anzeigen?
Dennis Williamson
Punkte
322329
Dies geht ein Unterverzeichnis tiefer. Das innere for
Schleife durchläuft die eingeschlossenen Dateien und Verzeichnisse. Die if
Anweisung werden Verzeichnisse ausgeschlossen. Sie können Optionen setzen, um versteckte Dateien und Verzeichnisse einzuschließen ( shopt -s dotglob
).
shopt -s nullglob
for dir in /some/dir/*/
do
for file in "$dir"/*
do
if [[ -f $file ]]
then
do_something_with "$file"
fi
done
done
Dies wird rekursiv sein. Sie können die Tiefe begrenzen, indem Sie die -maxdepth
Option.
find /some/dir -mindepth 2 -type f -exec do_something {} \;
Verwendung von -mindepth
schließt Dateien im aktuellen Verzeichnis aus, schließt aber Dateien in der nächsten Ebene darunter ein (und darunter, je nach -maxdepth
).
Dallaylaen
Punkte
5208