find . -type d ! -name . -mtime +31 -exec sh -c '
case $(find "$1" ! -mtime +31 -exec echo x \; -prune) in
"" ) rm -rf "$1" || echo "Error could not delete folder \"$1\"" ;;
esac
' {} {} \;
No diretório atual, lançamos find
e observamos apenas directories
que não foram atualizados desde os últimos 31 dias. E em cada um desses diretórios, mergulhamos e procuramos por algo que não tenha mais de 31 dias, e ao encontrá-lo, fazemos eco a um personagem fictício e também podamos qualquer pesquisa avançada (idealmente devemos terminar nossa busca aqui por meio de -quit
, mas não é POSIX
, portanto, aceitamos -prune
).
Em seguida, procuramos o resultado dessa operação find
e, se ela estiver vazia, sabemos que nem um elemento (file / dir / link / etc.) era novo e, portanto, esse dir. é seguro para exclusão.