find . \( -name __pycache__ -o -name "*.pyc" \) -delete
Estou tentando excluir todos os arquivos * .pyc e pycache , e quaisquer outros arquivos tontos que os idiomas precisem executar e que eu não quero ver. O mais próximo que eu cheguei é
sudo rm -rf **/*__pycache__
resposta, que não funciona no fundo do caminho, e
sudo rm -R -f {__pycache__,.*.pyc}
que não funcionou na pasta pycache .
webapi/__pycache__
webapi/cool_app/__pycache__
webapi/cool_app/bad_file.pyc
webapi/cool_app/keep_this_awesomeness.py
webapi/cool_app/sweet_folder/__pycache__
webapi/cool_app/sweet_folder/bad_file.pyc
webapi/cool_app/sweet_folder/keep_this_awesomeness.py
Apenas
webapi/cool_app/keep_this_awesomeness.py
webapi/cool_app/sweet_folder/keep_this_awesomeness.py
permanecem.
Se o seu shell suporta, você pode fazer a travessia recursiva com o próprio shell e usar rm
para remover os arquivos.
Por exemplo, na opção bash
, globstar
shell permite que o padrão de glob **
corresponda a qualquer profundidade do subdiretório e também é possível usar operadores regulares de globbing para corresponder aos arquivos.
No seu caso:
rm **/{*.pyc,__pycache__}
faria.
Primeiro, ative globstar
:
shopt -s globstar
No seu caso, você também pode fazer
find . -name "__pycache__" -o -name "*.pyc" | xargs rm -rf
Feito apenas com comandos incorporados. Isso evita que você habilite o globstar.