Usando o comando file para contar arquivos de script

3

Eu preciso usar o comando file para contar o número de scripts em um diretório.

Eu sei como obter o tipo de arquivo usando file :

file test
test: Bourne-Again shell script, ASCII text executable

Mas como eu usaria file para contar o número de arquivos de script?

    
por Osadron 01.11.2017 / 06:21

1 resposta

6

Arquivos de script geralmente são executáveis, você pode encontrar facilmente todos os arquivos executáveis em um diretório usando find . Observe que esses comandos para localizar arquivos executáveis encontrarão todos arquivos executáveis, não apenas scripts).

find . -type f -executable

Isso localizará todos os arquivos executáveis no diretório em que você o executa. Ele também incluirá arquivos de subdiretórios, para ignorar subdiretórios, adicione -maxdepth 1 desta forma:

find . -maxdepth 1 -type f -executable

Agora, isso fornecerá uma lista de todos os arquivos, não uma contagem deles. Para receber uma contagem, canalize o resultado para wc -l :

find . -type f -executable | wc -l

No caso em que alguns dos arquivos são arquivos de script, mas não executáveis, os seguintes comandos podem ser usados:

  • Se apenas os arquivos no diretório atual devem ser contados:

    file -b * | grep " script" | wc -l

  • Se arquivos em subdiretórios devem ser incluídos:

    find . -type f -exec file -b {} \; | grep " script" | wc -l

Um espaço é adicionado antes do "script" no comando grep para evitar correspondências inválidas (como "descritivo" em arquivos TIF).

    
por 01.11.2017 / 07:10