Você só passa o nome do arquivo para -exec
, de modo que não faça nada. Você precisa usar -print0
para que você também possa manipular nomes de arquivos com novas linhas e outros caracteres especiais, então faça algo como:
find /apps/dynalife/clients/. ! -path "train" -type f -mtime +90 ! \( -name "*.p" -o -name "*.i" -o -name "*.w" -o -name "*.cls" -o -name "*.inf" -o -name "*.bat" \) -print0 > /apps/dynalife/util/delFile.lst
Isso fornecerá uma lista que você pode inserir em rm
usando:
cat /apps/dynalife/util/delFile.lst | xargs -0 rm
Se a sua localização não suportar -print0 e seus nomes de arquivos não contiverem novas linhas (mas espaços), você poderá usar -print
:
find /apps/dynalife/clients/. ! -path "train" -type f -mtime +90 ! \( -name "*.p" -o -name "*.i" -o -name "*.w" -o -name "*.cls" -o -name "*.inf" -o -name "*.bat" \) -print > /apps/dynalife/util/delFile.lst
e:
cat /apps/dynalife/util/delFile.lst | xargs rm