Como usuários do Linux, interagimos com arquivos e diretórios regularmente. Uma operação comum que os usuários realizam é remover diretórios do sistema de arquivos. No entanto, precisamos ter muito cuidado ao remover os diretórios, pois operações de remoção realizadas sem cuidado podem resultar em perda de dados.
Neste artigo para iniciantes, aprenderemos sobre o comando rmdir. Também discutiremos alguns exemplos práticos que podem ser usados no dia a dia.
A sintaxe do comando rmdir é semelhante à de outros comandos do Linux. Em um nível mais amplo, ele é dividido em duas partes: opções e argumentos :
$ rmdir [OPÇÕES] ... <DIRETÓRIO1> <DIRETÓRIO2> ...
Aqui, os colchetes ([])representam os argumentos opcionais, enquanto os colchetes angulares (<>)representam os argumentos obrigatórios.
Uso básico do comando rmdir no Linux
Como o nome sugere, o comando rmdir é usado para remover o diretório. No entanto, é importante observar que ele só pode remover diretórios vazios. Nesta seção, veremos o uso básico do comando rmdir.
Excluir um diretório vazio no Linux
Primeiro, crie alguns diretórios vazios:
$ mkdir dir1 dir2 dir3 dir4
Vamos verificar se os diretórios necessários foram criados:
$ ls -l
Agora, vamos remover o diretório dir1 e verificar se ele foi removido:
$ rmdir dir1
$ ls -l
De forma semelhante, podemos usar o comando rmdir para remover vários diretórios vazios de uma só vez.
Vamos remover os diretórios restantes:
$ rmdir dir2 dir3 dir4
Por fim, verifique se todos os diretórios foram removidos:
$ ls -l
Aqui, podemos ver que o comando ls não mostra nenhum diretório.
Modo Detalhado rmdir
Na seção anterior, usamos o comando ls para verificar a remoção do diretório. No entanto, não faz sentido executar mais um comando apenas para verificar as ações dos comandos anteriores.
Nesses casos, podemos habilitar o modo verbose usando a -vopção , que fornece diagnósticos para cada diretório processado.
Vamos criar a mesma estrutura de diretório que criamos anteriormente:
$ mkdir dir1 dir2 dir3 dir4
Agora, vamos remover os diretórios com o modo verbose habilitado:
$ rmdir -v dir1 dir2 dir3 dir4
$ ls -l
A partir da saída acima, podemos concluir que todos os diretórios foram removidos.

Remover subdiretórios vazios no Linux
Frequentemente criamos subdiretórios em um sistema de arquivos, o que nos permite organizar nossos dados de maneira adequada. Vamos ver como trabalhar com subdiretórios vazios.
Como discutido no primeiro exemplo, podemos remover vários diretórios usando o comando rmdir. No entanto, a situação se torna complicada quando há muitos subdiretórios.
Nesses casos, podemos usar a opção -p que remove o diretório e todos os seus ancestrais. Vamos entender isso com um exemplo.
Primeiro, crie uma estrutura de subdiretório:
$ mkdir -p dir1/dir2/dir3/dir4/dir5
Neste exemplo, usamos a opção -p com o comando mkdir para criar uma estrutura de subdiretório.
Vamos remover todos esses diretórios de uma só vez:
$ rmdir -p -v dir1/dir2/dir3/dir4/dir5
rmdir: removendo diretório, 'dir1/dir2/dir3/dir4/dir5'
rmdir: removendo diretório, 'dir1/dir2/dir3/dir4'
rmdir: removendo diretório, 'dir1/dir2/dir3'
rmdir: removendo diretório, 'dir1/dir2'
rmdir: removendo diretório, 'dir1'
Aqui, o modo verbose remove o diretório dir5 e todos os seus diretórios ancestrais.
Lidar com falha de diretório não vazio
Já sabemos que o rmdir só pode remover diretórios vazios. Qualquer tentativa de remover um diretório que não esteja vazio resultará em erro. Embora isso ofereça proteção contra perda de dados, em alguns casos raros pode causar problemas.
Por exemplo, se tentarmos remover um diretório não vazio do script que está sendo executado pelo Jenkins, a tarefa relatará uma falha.
Para simular isso, vamos tentar remover o diretório não vazio:
$ mkdir -p dir1/dir2/dir3/dir4/dir5
$ rmdir dir1
rmdir: falha ao remover 'dir1': Diretório não vazio
Para esses casos de erro, podemos usar a opção --ignore-fail-on-non-empty que ignora todas as falhas que ocorreram devido a um diretório não vazio.
Vamos usar esta opção com o comando e verificar o valor de retorno:
$ rmdir --ignore-fail-on-non-empty dir1
$ echo $?
0
Neste exemplo, podemos ver que o comando não relatou nenhum erro e o valor de retorno zero indica a execução bem-sucedida do comando. No entanto, é importante observar que esta opção apenas suprime o erro e não remove o diretório não vazio.
Use expressões regulares no comando rmdir
Semelhante a outros comandos do Linux, podemos usar expressões regulares com o comando rmdir. Vejamos o uso das duas expressões regulares a seguir:
?– Corresponde exatamente a um caractere.*– Corresponde a zero ou mais ocorrências dos caracteres anteriores.
Primeiro, crie alguns diretórios vazios:
$ mkdir dir1 dir2 dir-01 dir-02
Agora, vamos usar a '?'expressão regular com a string ‘dir’ para remover os diretórios dir1 e dir2 :
$ rmdir -v dir?
rmdir: removendo diretório, 'dir1'
rmdir: removendo diretório, 'dir2'
Aqui, podemos ver que o comando removeu os diretórios corretos.
Em seguida, use a '*'expressão regular para remover os outros dois diretórios:
$ rmdir -v dir-*
rmdir: removendo diretório, 'dir-01'
rmdir: removendo diretório, 'dir-02'
Neste exemplo, podemos ver que os outros dois diretórios foram removidos.
Nesta seção, discutimos o uso de apenas duas expressões regulares. No entanto, também podemos usar outras expressões regulares avançadas com o comando rmdir .
Neste artigo, primeiro vimos o uso básico do comando rmdir . Em seguida, discutimos o modo verbose e a remoção de subdiretórios. Em seguida, vimos como lidar com falhas quando um diretório não está vazio. Por fim, discutimos como usar expressões regulares.

