Como excluir um diretório não vazio no Terminal?

524

Como excluo o seguinte diretório?

eu digitei:

rmdir lampp

Esse erro aparece:

rmdir: failed to remove 'lampp': Directory not empty

Existe um comando para excluir todos os arquivos no diretório e excluir a pasta do diretório?

    
por naveen 16.11.2012 / 05:37

5 respostas

727

Use o comando abaixo:

rm -rf lampp

Exclui todos os arquivos e pastas contidos no diretório lampp .

Caso o usuário não tenha permissão para excluir a pasta:

Adicione sudo no início do comando:

sudo rm -rf folderName

Caso contrário, sem sudo , você receberá a permissão negada. E é uma boa prática tentar não usar -f ao excluir um diretório:

sudo rm -r folderName

Nota: isto presume que você já esteja no mesmo nível da pasta que deseja excluir no terminal, se não:

sudo rm -r /path/to/folderName

FYI: você pode usar as letras -f , -r , -v :

  • -f = para ignorar arquivos inexistentes, nunca solicitar
  • -r = para remover diretórios e seus conteúdos de forma recursiva
  • -v = para explicar o que está sendo feito
por Shantanu Banerjee 16.11.2012 / 06:19
89
rm -R lampp

No entanto, você precisa ter cuidado com um comando recursivo como este, já que é fácil excluir acidentalmente muito mais do que pretendia.

É sempre uma boa idéia verificar novamente em qual diretório você está e se você digitou o comando corretamente, antes de pressionar Enter.

Versão mais segura

rm -R -i lampp

Adicionar -i torna-o um pouco mais seguro, porque ele será solicitado em todas as exclusões. No entanto, se você estiver excluindo muitos arquivos, isso não será muito prático. Ainda assim, você pode tentar isso primeiro.

Observação sobre -f opção:

Muitas pessoas sugerem o uso de -f (combinando-o em -Rf ou -rf ), alegando que ele se livra de prompts irritantes. No entanto, em casos normais, você não precisa disso, e usá-lo suprime alguns problemas que você provavelmente faz deseja conhecer. Quando você usá-lo, você não será avisado se seus argumentos fornecerem um diretório ou arquivo inexistente: o rm irá falhar silenciosamente em apagar qualquer coisa. Como regra geral, tente primeiro sem o -f : se houver problemas com seus argumentos, você notará. Se você começar a receber muitos prompts sobre arquivos sem acesso de gravação, poderá tentar com -f . Como alternativa, execute o comando de um usuário (ou o superusuário usando sudo) que tenha permissões totais para os arquivos e diretórios que você está excluindo para evitar esses prompts em primeiro lugar.

    
por thomasrutter 16.11.2012 / 05:56
21

Existem muitas maneiras de excluir um diretório por meio do modo CLI. Depende de como você se sente confortável.

rm -rvf /path/to/directory  
  • -r = remover diretórios e seus conteúdos de forma recursiva
  • -v = explica o que está sendo feito
  • -f = ignora arquivos inexistentes, nunca solicita

Se você é novo no Linux, use as man pages dos comandos ( man rm ) para mais opções e mais precisão.

    
por papseddy 16.11.2012 / 06:38
-2

Eu estava tendo alguns problemas com isso hoje, mas eu superei isso com o sudo.

Ressalva: tenha certeza de que deseja excluir a coisa toda antes de usar o comando abaixo.

$ sudo rm -R [Directory name]

Hoje fiz isso com sucesso e removi muitos diretórios não vazios que confirmei que não queria / precisava.

Estou usando 14.04 LTS

    
por Thomas 29.09.2014 / 01:00
-3

A propósito, eu pessoalmente queria deletar um diretório contendo um arquivo protegido por escrita (s / .git e sub-diretórios) e eventualmente percebi que eu também precisava me tornar um super usuário para deletar esses arquivos com sucesso. Aqui está o que eu fiz:

#became super user
sudo su -

#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/
    
por Harvey Williams 17.09.2013 / 19:35