Em uma versão antiga do Unix, o rmcomando excluiria diretórios se eles estivessem vazios. Na página do manual Research Unix Eighth Edition para rm : "Se uma entrada for um diretório, ela será removida apenas se estiver vazia." Eu gosto desse comportamento, então tenho esse alias no meu /etc/profile: alias rm='rm -d'estou usando a versão GNU coreutils do rm, na qual -ddiz rmpara ir em frente e remover os diretórios, se estiverem vazios.
Por enquanto, tudo bem. Esse alias permite que eu use rmcomo nos velhos tempos. No entanto, gostaria de dar um passo adiante. eu gostariarmpara excluir um diretório, mesmo que o diretório contenha outros diretórios, desde que os diretórios sejam a única coisa lá. Não importa a profundidade da estrutura de diretórios, desde que não haja arquivos, apenas diretórios vazios (quando você chegar ao fundo), eu gostaria rmde removê-los todos.
Isso poderia ser escrito como um alias que ainda funcionaria como regular rme excluiria os arquivos passados para ele?
mkdir -p a/b1/c2 && mkdir -p a/b2/c2; rmdir -p a/b1/c1;, ainda fico com a, a / b2 e a / b2 / c2. O que eu gostaria é de passar apenas o nível superior (a neste caso) rme remover tudo abaixo dele.
rmdir -p?