Existem muitas maneiras de fazer isso. Todas as opções abaixo funcionaram no z / OS.
Se o seu find
não for compatível com -path
e desde que você esteja assumindo que nenhum nome de arquivo conterá novas linhas (canalizando para wc
), você poderá contorná-lo com grep
:
find /tmp/ -type f -mtime +90 | grep -v /tmp/dir2-exclude | grep -v /tmp/dir4-exclude | wc -l
Se seus diretórios excluídos compartilharem um padrão (isso não exclui nada que você queira manter), você pode simplificá-lo para:
find /tmp ... | grep -cv '/tmp/dir.*-exclude'
... novamente com o entendimento de que isso contará erroneamente a saída de encontrar se há diretórios ou nomes de arquivos com novas linhas neles.
Se o seu find
suportar vários caminhos iniciais e os que você deseja incluir compartilharem um padrão, você poderá trabalhar dessa maneira:
find /tmp/dir*-include -type f -mtime +90 | wc -l
Além disso, a opção -prune não fica abaixo dos diretórios mencionados.
find /tmp/ -type d -name "/dir2-exclude" -prune -o -type d -name "/dir4-exclude" -prune -o -type f -mtime +90 | wc -l