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.