Sem saber quantos diretórios você tem, é difícil prever como se comportará, mas posso dizer o seguinte:
find . -maxdepth 1 -type d -empty -delete
é uma ideia muito ruim. encontrar é terrivelmente lento quando se trata de deletar coisas. Nos tempos em que o comparamos, a opção -delete
foi 40 a 50 vezes mais lenta que a abordagem ideal.
Da mesma forma,
rmdir --ignore-fail-on-non-empty /path/to/huge/folder/*
deve ser abaixo do ideal. O shell expandirá o glob para todas as entradas de diretório (arquivos e pastas) e, antes mesmo de passá-las para rmdir , classificá-las alfabeticamente, o que levará tempo e será completamente desnecessário.
A abordagem combinada deve ser a melhor:
find . -maxdepth 1 -type d -empty -exec rmdir {} +
Observe que o sinal de mais no final evita chamar rmdir para cada diretório. Em vez disso, encontrar reúne tantos nomes de diretório quantos couberem em 128 KiB (por causa do limite do kernel para argumentos de linha de comando) e executa rmdir para todos de uma só vez.
Combinar o acima com ionice não prejudicaria. Se houver "apenas" alguns milhões de diretórios, duvido que seja necessário. Mas como você não sabe o número exato, é melhor prevenir do que remediar.