Utilizando find para contar apenas diretórios que possuem determinados 3 arquivos?

1

É possível usar find para retornar apenas um resultado: 3 nomes de arquivos estão presentes nesse diretório?

claro que no final podemos usar wc -l para registrá-los ...

mas começando com algum tipo de diretório raiz do projeto e, em seguida, apenas dentro das subpastas que correspondem ao padrão nome / regex, tente listar os que têm dentro deles:

file1.ext1 e file2.ext2 e *.ext3

e depois contar apenas diretamente com wc -l se todos esses arquivos estiverem presentes?

    
por leeand00 02.05.2018 / 04:22

1 resposta

2

Você pode executar testes que não são internos para find com -exec ou -execdir e usar o resultado como find test. Neste caso:

find . -name \*.ext3 -execdir /usr/bin/test -e file1.ext1 -a -e file2.ext2 \; -printf "%p\n" | sort -u | wc -l

Isso procurará arquivos correspondentes a *.ext3 e, para cada um que encontrar, execute /usr/bin/test no diretório de contenção para verificar se file1.ext1 e file2.ext2 também existem. Se eles fizerem isso, exibirá o caminho do diretório contido. A saída é então filtrada para remover duplicatas e, finalmente, contada.

    
por 02.05.2018 / 06:48