encontrar arquivos de log com mais de 30 dias

encontrar arquivos de log com mais de 30 dias

Estou trabalhando em um script para localizar arquivos com mais de 30 dias em uma determinada pasta. Com base no requisito, preciso excluir apenas arquivos com extensão.registroou.forae pule subdiretórios.

O comando abaixo está retornando todos os arquivos .log* que foram modificados há 30 dias. No entanto, ele está retornando todos os arquivos .out, mesmo os mais recentes. há algo errado no código abaixo?

    find -maxdepth 1 -mtime +30 -type f -name "*.log*" -o -name "*.out*"

você poderia me informar o que há de errado na declaração acima

Responder1

Tentar:

find -maxdepth 1 -mtime +30 -type f \( -name "*.log*" -o -name "*.out*" \)

O problema era que findos vínculos lógicos e mais rígidos do que lógicos ou. Os parênteses neutralizam isso.

Sem os parênteses, findestá procurando por arquivos que correspondamqualquer(a)-mtime +30 -type f -name "*.log*" ou(b) -name "*.out*".

Com os parênteses, findprocura arquivos que (a) correspondam-mtime +30 -type f e(b) corresponder a -name "*.log*"ou -name "*.out*".

informação relacionada