Em uma versão antiga do Unix, o rm
comando 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 -d
diz rm
para ir em frente e remover os diretórios, se estiverem vazios.
Por enquanto, tudo bem. Esse alias permite que eu use rm
como nos velhos tempos. No entanto, gostaria de dar um passo adiante. eu gostariarm
para 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 rm
de removê-los todos.
Isso poderia ser escrito como um alias que ainda funcionaria como regular rm
e 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) rm
e remover tudo abaixo dele.
rmdir -p
?