Na região z/OS (Mainframe versão 2.1) Unix System Services, estou tentando executar este comando que envolve find da seguinte forma:
digamos que eu tenha a seguinte estrutura de diretórios:
/tmp
/dir1-include
/dir2-exclude
/dir3-include
/dir4-exclude
Estou tentando obter uma contagem de todos os arquivos com mais de 90 dias dir1-include
e dir3-include
. Este comando a seguir parece não funcionar:
find /tmp/ \( -path /dir2-exclude -prune -o \
-path /dir4-exclude -prune \
\) \
-o -type f -mtime +90 | wc -l
Dá-me:
FSUM6372 Unknown option "-path"
Usage: find directory ... expression`
Há muitas maneiras de fazer isso. Todas as opções abaixo funcionaram no z/OS.
Se o seu
find
não suportar-path
, e como você está assumindo que nenhum nome de arquivo conterá novas linhas (encaminhando parawc
), você pode contornar isso comgrep
:Se seus diretórios excluídos compartilham um padrão (que não exclui nada que você deseja manter), você pode simplificá-lo para:
... novamente com o entendimento de que isso contará incorretamente a saída de find se houver diretórios ou nomes de arquivos com novas linhas neles.
Se o seu
find
suporte a vários caminhos iniciais e os que você deseja incluir compartilham um padrão, você pode contornar isso dessa maneira:Além disso, a opção -prune não desce abaixo dos diretórios mencionados.