Comando rmdir do Linux: Como Remover Diretórios Vazios
O comando rmdir no Linux remove diretórios vazios. Ele deixa diretórios contendo arquivos ou subdiretórios intactos, permitindo remover diretórios vazios enquanto preserva seu conteúdo.
Excluindo Diretórios Vazios
Especifique o caminho do diretório a ser removido. Caminhos relativos são resolvidos a partir do diretório de trabalho atual, então verifique a localização e o alvo com pwd e ls -la antes de executar o comando.
rmdir empty-dir
Um diretório vazio normalmente é removido sem saída. Se ele contiver arquivos ou subdiretórios, não será removido e um erro como Directory not empty aparecerá. As mensagens de erro dependem do idioma do sistema. Diretórios removidos normalmente não são movidos para a lixeira, então confirme o alvo primeiro.
Se você especificar múltiplos diretórios, ele tentará deletar cada um. Mesmo que alguns falhem porque não estão vazios, outros alvos ainda podem ser deletados, então você não deve pensar nisso como uma operação que ou completa com sucesso ou é completamente cancelada.
rmdir first-dir second-dir
Tente você mesmo
Realize a prática a seguir em um local que não sobreponha arquivos existentes. Se rmdir-practice já existir, escolha outro nome, e se a criação do diretório falhar, não execute o próximo comando. Se você usar um nome diferente, substitua rmdir-practice nos comandos abaixo por esse nome.
mkdir rmdir-practice
Se a criação for bem-sucedida, entre no diretório da prática com o seguinte comando e crie diretórios vazios e diretórios que contenham arquivos.
cd rmdir-practice
mkdir empty busy
touch busy/example.txt
empty está vazio, e busy contém arquivos. Tente apagar ambos os diretórios em ordem.
rmdir empty
rmdir busy
O primeiro comando exclui empty. O segundo falha porque busy não está vazio, e os arquivos permanecem. Você pode usar o próximo comando para verificar até mesmo os itens ocultos.
ls -la busy
. e .. na saída referem-se aos diretórios atual e pai. Se houver outros arquivos ou subdiretórios, não está vazio. A seguinte prática -p também é realizada neste diretório. Ao remover arquivos de prática, verifique o alvo primeiro.
opção -p para excluir até o diretório pai
-p ou --parents tenta excluir os diretórios do diretório especificado até os diretórios pai em ordem. Cada diretório deve estar vazio nesse momento. Você pode verificar isso no diretório de prática da seguinte maneira.
mkdir -p a/b/c
rmdir -p a/b/c
Se não houver outro conteúdo, eles serão deletados na ordem c, b, a. Se houver outros arquivos no diretório pai, deletar os diretórios inferiores pode funcionar, mas deletar o diretório pai pode falhar. Portanto, certifique-se de que todo o caminho esteja destinado à exclusão antes de executar. Após terminar a prática, volte para o diretório pai com cd ...
Exibir operações e ignorar diretórios não vazios
-v ou --verbose exibe mensagens sobre o diretório sendo processado. Verifique as mensagens de erro para determinar se a exclusão realmente ocorreu.
rmdir -v empty-dir
A opção --ignore-fail-on-non-empty do GNU rmdir ignora a falha de exclusão que ocorre porque o diretório não está vazio. O diretório ou seus conteúdos não são excluídos. O seguinte comando é executado a partir do local pai do diretório de prática.
rmdir --ignore-fail-on-non-empty rmdir-practice/busy
Esta opção ignora diretórios apenas se eles não estiverem vazios. Não é uma opção que ignora outros erros, como caminhos ausentes ou falta de permissões. Se ocorrerem apenas falhas ignoradas, o status de saída pode ser mostrado como bem-sucedido, portanto, não julgue que todos os diretórios foram excluídos apenas com base no status de saída. Você pode verificar o comportamento detalhado da opção no manual GNU rmdir.
Verificando quando a exclusão falha
- Não vazio: Substitua
directorypelo caminho real emls -la directorypara verificar arquivos ocultos e subdiretórios. Emlscomuns, itens cujos nomes começam com um ponto podem não ser visíveis. - Problema de permissão: Verifique as permissões, propriedade e status do sistema de arquivos do alvo e de seu diretório pai. A exclusão geralmente requer permissões de escrita e busca para o diretório pai, e outras restrições também podem se aplicar.
- Problema de caminho ou alvo: Verifique o nome e a localização atual. Um link simbólico apontando para um diretório é diferente do próprio diretório, então verifique com
ls -ld.
rmdir * permite que o shell passe vários nomes no diretório atual para o comando. Arquivos também podem ser incluídos, e nomes ocultos geralmente não são incluídos, portanto é mais seguro primeiro verificar o alvo com ls -la e especificar os diretórios necessários. Se você precisar excluir um diretório que contém arquivos, não é possível fazê-lo com rmdir, e a exclusão de arquivos deve ser decidida separadamente após revisar o conteúdo.




