Nem todos os arquivos python terão a extensão de arquivo .py - Tente executar grep -rni python /usr/bin , por exemplo). A maioria desses scripts terá uma linha 'shebang' (ou hashbang) (por exemplo, #!/usr/bin/env python , #!/usr/bin/python2.7 ). Isso informa o interpretador do script que programa precisa ser usado para executá-lo, e você pode procurar por isso para encontrar arquivos python
No entanto, você também pode usar o tipo MIME do arquivo (geralmente ao longo das linhas de text/x-python ) para encontrá-lo:
find / -type f | while read in ; do if file -i "${in}" | grep -q x-python ; then echo "${in}" ; fi ; done
Onde / é o seu diretório de pesquisa pretendido.
Com find você também pode adicionar a opção -executable para procurar apenas arquivos executáveis. Também o uso de -type f restrict procura procurar apenas por arquivos - você pode mudar isso e então mostrar links simbólicos etc também (alguns scripts estão contidos em /usr/lib etc e linkados por símile para /usr/bin/ etc) . Muitas outras opções estão disponíveis, você pode vê-las executando man find .
file deve ser capaz de adivinhar o tipo de arquivo mesmo se o arquivo não tiver extensão, etc. (usando a linha shebang, etc) - consulte aqui .
Para remover quaisquer erros de find: ‘/.../FILE’: Permission denied etc, você pode executar o script como raiz (usando sudo bash -c "COMMAND" , abrindo um shell com sudo su etc) e / ou simplesmente acrescentar 2>/dev/null ao comando find.