Первая проблема заключается в том, что в оболочке происходит подстановочный знак, за до даже запускается командная строка.Когда вы запускаете:
somecommand *.py
Эта команда не знает, что вы ввели *
.Все, что он знает, это то, что вы передали список файлов.Другими словами, yapf
неспособен понять шаблон, потому что он никогда не видит шаблон.
Вторая проблема заключается в том, что **
не является допустимым шаблоном слияния файла оболочки.Это семантически эквивалентно *
, поэтому при запуске yapf -ir files **.py
будут обрабатываться только любые файлы .py
, содержащиеся в вашем текущем каталоге и внутри каталога files
.
Если вы хотите запустить yapf
рекурсивно ввсе ваши файлы Python, начиная с вашего текущего каталога, есть несколько решений.Возможно, самое простое:
yapf -ir .
Это обработает все файлы .py
в вашем текущем каталоге и его дочерних элементах.Если вы хотите больше контроля над выбором файлов, используйте find
и xargs
:
find . -name '*.py' -print0 | xargs -0 yapf -i