Eu tentei os dois comandos e aqui estão minhas conclusões:
-
rm -dfunciona comormdir(a menos que algo esteja acontecendo com links ou algo parecido). -
rm -rexclui o diretório de destino e exclui recursivamente tudo nesse diretório (incluindo diretórios e arquivos não vazios de qualquer tipo)
Então a diferença é bem clara. Não há dúvida de que rm -r é um comando muito perigoso que deve ser usado com muita cautela (Exemplo: rm -rf / pode excluir potencialmente seu sistema ou rm -rf * poderia excluir seu projeto atual), enquanto rm -d só permite excluir diretórios vazios (Lembre-se que rm -rd é um comando válido e funcionará como rm -r , portanto tenha cuidado).