Script de limpeza com find e anacron

1

Eu quero excluir automaticamente arquivos antigos em ~ / Downloads. com exceção daqueles que têm '!' em seu nome. Minha versão atual é a seguinte:

find /home/user/Downloads/ -mtime +90 ! -path '*!*' -delete

Quando eu testo da seguinte forma *:

find /home/user/Downloads/ -depth -mtime +90 ! -path '*!*' -print

O resultado é:

/home/user/Downloads/old.file
/home/user/Downloads

Eu não quero excluir meu diretório /home/user/Downloads que ainda conterá !protected.old.file

Eu quero que isso seja executado a partir de anacron, então não tenho certeza se usando globing é uma boa idéia.

* Observe que -depth está implícito em -delete .

    
por lynx 10.11.2015 / 16:06

1 resposta

1

Se tudo o que você deseja fazer é proteger o caminho dado a find de ser excluído, use -mindepth 1 . Eu dividi a ação, no entanto: execute uma vez, excluindo apenas arquivos e execute novamente, desta vez excluindo diretórios usando rmdir , que removerá apenas diretórios vazios. Observe que a exclusão de um arquivo deve alterar os horários de acesso e modificação do diretório que o contém, portanto, o teste se torna inválido para um diretório antigo assim que qualquer arquivo nele for excluído. Portanto, é mais provável que a exclusão de diretórios vazios em uma segunda execução seja bem-sucedida.

    
por 10.11.2015 / 16:16

Tags