このようなものを書きたいのですが:
$ ls **.py
すべての.pyファイル名を取得するには、ディレクトリ階層を再帰的にウォークします。
検索する.pyファイルがある場合でも、シェル(bash)は次の出力を提供します:
ls: cannot access **.py: No such file or directory
私がやりたいことをする方法はありますか?
編集: ls
の特定のケースには興味がないことを明記したいと思います 、しかし問題はglob構文についてです。
承認された回答:
bashで再帰的なグロブを実行するには、globstar
が必要です。 bashバージョン4以降の機能。
bashのマンページから:
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.
パターンの例:
shopt -s globstar
ls -d -- **/*.py