O que você precisa é de travessia em profundidade . Com isso, você começaria no diretório mais profundo e depois subiria. find
tem uma opção para isso, então você pode simplesmente executar:
find /some/path -depth -type d -exec rmdir {} \;
Você pode querer suprimir adicionalmente os avisos para diretórios não vazios. Você pode adicionar 2>/dev/null
no final para isso.
Com o% GNUfind
(e outros como o% BSDfind
no OS X), você pode otimizar o comando - e executá-lo sem avisos - usando -empty
, como você fez acima.
find /some/path -depth -type d -empty -exec rmdir {} \;