Ich würde gerne so etwas schreiben:
$ ls **.py
Um alle .py-Dateinamen zu erhalten, durchlaufen Sie rekursiv eine Verzeichnishierarchie.
Selbst wenn .py-Dateien zu finden sind, gibt die Shell (bash) diese Ausgabe aus:
ls: cannot access **.py: No such file or directory
Irgendeine Möglichkeit zu tun, was ich will?
BEARBEITEN: Ich möchte darauf hinweisen, dass ich mich nicht für den speziellen Fall von ls
interessiere , aber die Frage betrifft die Glob-Syntax.
Akzeptierte Antwort:
Um rekursive Globs in Bash zu erstellen, benötigen Sie den globstar
Funktion ab Bash-Version 4 oder höher.
Aus der Bash-Manpage:
globstar
If set, the pattern ** used in a pathname expansion context will
match all files and zero or more directories and subdirectories.
If the pattern is followed by a /, only directories and
subdirectories match.
Für Ihr Beispielmuster:
shopt -s globstar
ls -d -- **/*.py