find . -type f -name '*.faa' -execdir python3 ../script.py ';'
Isso executaria python3 ../script.py com o diretório de cada arquivo encontrado como diretório de trabalho.
Como suas palavras e seu código são conflitantes, não sei se devem ser ../script.py ou ../../script.py .
Observe também que isso só funcionaria se o arquivo script.py estivesse realmente disponível no diretório indicado. Pode ser mais seguro fornecer um caminho absoluto para o arquivo de script:
find . -type f -name '*.faa' -execdir python3 /path/to/script.py ';'
O texto acima executaria o script para cada arquivo encontrado, mesmo se houver vários arquivos .faa em um diretório. Para executar o script apenas uma vez para cada diretório que tenha pelo menos um arquivo .faa :
find . -type d -exec sh -c '
for dir do
set -- "$dir"/*.faa
if [ "$#" -gt 0 ]; then
( cd "$dir" && python3 /path/to/script.py )
fi
done' sh {} +
Isso executaria um script de shell curto para cada diretório encontrado. O script exibe no diretório para ver se há algum arquivo .faa lá. Se houver, o script Python é executado com esse diretório como diretório de trabalho.
Relacionados: