Você tem apenas um comando lá, então basta chamar find
com -exec
flag chamando rmdir
:
find -depth -type d -exec rmdir {} \;
Ou use a opção -delete
como em find -type d -delete
, mas não funcionará com diretórios não vazios. Para isso, você também precisará do -empty
flag. Observe também que -delete
implica -depth
, portanto, pode ser ignorado. Assim, outra alternativa viável que mantém tudo como um processo:
find -type d -empty -delete
Se o diretório não estiver vazio, use rm -rf {} \;
. Para isolar apenas diretórios com \n
no nome do arquivo, podemos combinar as citações ANSI-C do bash $'...'
com -name
opption:
find -type d -name $'*\n*' -empty -delete
POSIX-ly, nós poderíamos lidar dessa maneira:
find -depth -type d -name "$(printf '*\n*' )" -exec rmdir {} \;
Vale ressaltar que se seu objetivo é a remoção de diretórios, então -delete
é suficiente, no entanto, se você quiser executar um comando no diretório, então -exec
é o mais apropriado.
Veja também