Tenha em atenção que o seu comando remove directórios que não foram alterados num dia, mesmo que alguns ficheiros tenham sido alterados recentemente.
Assumindo que é isso que você quer, Stéphane Chazelas e thrig propuseram duas soluções nos comentários. O problema que você está enfrentando é que você instrua find para excluir um diretório e, em seguida, ele tenta percorrê-lo para ver se há arquivos nele que correspondam.
-
Passe
-depthpara informarfindpara processar primeiro o conteúdo de um diretório e o próprio diretório. Isso desperdiça um pouco de tempo analisando o conteúdo dos diretórios que serão removidos mais tarde.find $JBOSS_HOME/standalone/tmp/vfs -depth -mindepth 1 -mmin +1441 -exec rm -rf {} \; -
Use
-prunepara instruirfinda não explorar os diretórios que estão sendo removidos.find $JBOSS_HOME/standalone/tmp/vfs -mindepth 1 -mmin +1441 -exec rm -rf {} \; -prune
Se você pretendia apenas excluir arquivos antigos, informe find . Você pode usar -delete em vez de invocar rm .
find $JBOSS_HOME/standalone/tmp/vfs -mmin +1441 -type f -delete
Você pode remover os diretórios vazios:
find -depth $JBOSS_HOME/standalone/tmp/vfs -type d -empty -delete
Ou combine os dois, excluindo os diretórios depois que o arquivo que deve ser removido for removido:
find $JBOSS_HOME/standalone/tmp/vfs -depth -mindepth 1 -mmin +1441 -type f -delete -o -type d -empty -delete