Para todas as versões do find
find -depth -type d -empty -exec rmdir {} \;
Se você tiver uma versão mais recente
find -type d -empty -delete
(em um sistema Linux)
Eu tenho um grande conjunto de subdiretórios aninhados em um sistema de arquivos. Eu gostaria de podar todos os caminhos de diretório que não contêm arquivos.
Em outras palavras, eu gostaria de excluir todos os diretórios onde não há arquivos nesse diretório ou em qualquer subdiretório desse diretório recursivamente.
Pode não ser a melhor solução, mas esse script funciona:
#!/bin/sh
while true
do
DIRS='find . -xdev -type d -exec find {} -maxdepth 0 -empty \;'
if [ -z "$DIRS" ]; then
exit 0
else
echo $DIRS | xargs rmdir
fi
done
(baseado parcialmente na resposta a Listar todas as pastas vazias )
for i in 'find -type d -empty'; do rmdir $i; done