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

630

Como faço para excluir o seguinte diretório?

Eu digitei:

rmdir lampp

Este 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?

naveen
fonte
1
Não consigo remover um diretório como "Nova Pasta" usando todos os comandos detalhados acima. É de duas palavras. Mas eu quero remover esse diretório. Todas as sugestões serão bem-vindas. T.Divakara, Bengaluru, India
É o espaço em branco no nome do arquivo, tente usar 'aspas'> rmdir 'Nova Pasta' <e a pasta será descartada ou use caracteres de escape para caracteres não-vissíveis.
precisa saber é o seguinte
2
Apenas fazendo rm -r lamppvai fazer.
John Strood

Respostas:

877

Use o comando abaixo:

rm -rf lampp

Exclui todos os arquivos e pastas contidos no lamppdiretório.

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

Adicione sudono início do comando:

sudo rm -rf folderName

Caso contrário, sem sudovocê, será devolvida a permissão negada. E é uma boa prática tentar não usar -fao excluir um diretório:

sudo rm -r folderName

Nota: isso pressupõe que você já esteja no mesmo nível da pasta que deseja excluir no terminal, caso contrário:

sudo rm -r /path/to/folderName

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

  • -f = para ignorar arquivos inexistentes, nunca solicitar
  • -r = remover diretórios e seu conteúdo recursivamente
  • -v = para explicar o que está sendo feito
Shantanu Banerjee
fonte
69
Na minha humilde opinião, é uma boa prática nunca adicionar o "f" na primeira tentativa. Seu objetivo é ignorar certos avisos que podem ser importantes, especialmente se você o tiver feito acidentalmente no / do diretório errado. Na minha opinião, é bom tentar sem o "f" primeiro, e somente se você encontrar muitos avisos e tiver certeza de que não há problema em ignorá-los, pressione Ctrl + C e repita o comando com " f ".
precisa saber é o seguinte
@thomasrutter ... Concordo. Um proprietário do arquivo "xxx": root e group: root podem ser excluídos com a opção -f ; e sem sudo . Esta é a mensagem sem -f : " rm: remova o arquivo regular protegido contra gravação '/home/william/.cache/netbeans/v08.01/tmp/xxx'? _". _Passe suavemente.
será
95
rm -R lampp

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

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

Versão mais segura

rm -R -i lampp

A adição -itorna-o um pouco mais seguro, porque você será solicitado a cada exclusão. No entanto, se você estiver excluindo muitos arquivos, isso não será muito prático. Ainda assim, você pode tentar isso primeiro.

Nota sobre a -f opção:

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

thomasrutter
fonte
4
Nota: letras minúsculas também -rpodem ser usadas e têm o mesmo efeito aqui. Eu só tendem a usar letras maiúsculas -Rporque é consistente com outros comandos que eu uso, como grepe chmod, alguns dos quais suportam apenas o formulário maiúsculas.
thomasrutter
Este funcionou para mim usando o adb (android debug bridge) no Android. Estava tentando rm -rf mas não funcionou. Teve que usar rm -R. Obrigado.
Raddevus 13/03/16
Esta é uma boa solução, especialmente se não tiver experiência com o uso do terminal Bash. O comando pode ser reduzido para rm -ir FOLDER.
AlainD
24

Existem várias maneiras de excluir um diretório através do modo CLI. Depende de como você se sente confortável.

rm -rvf /path/to/directory  
  • -r = remover diretórios e seu conteúdo recursivamente
  • -v = explique o que está sendo feito
  • -f = ignora arquivos inexistentes, nunca solicita

Se você é novo no Linux, use as páginas de manual dos comandos ( man rm) para obter mais opções e mais precisão.

papseddy
fonte
-2

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

Advertência: Tenha certeza de que deseja excluir a coisa toda antes de usar o comando abaixo.

$ sudo rm -R [Directory name]

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

Estou usando 14.04 LTS

Thomas
fonte
4
"SUDO" não é um comando - "sudo" é. No entanto, você não usa o sudo para excluir um diretório não vazio, mas para excluir um arquivo que não pertence a você. Fazer isso normalmente é perigoso e não muito inteligente, pois você não deve excluir cegamente os arquivos que não possui.
Marty Fried
-3

A propósito, eu pessoalmente queria excluir um diretório contendo um arquivo / s protegido contra gravação (.git e subdiretórios) e, finalmente, percebi que eu também precisava me tornar um super usuário para excluir esses arquivos com êxito. Aqui está o que eu fiz:

#became super user
sudo su -

#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/
Harvey Williams
fonte
4
Eu não acho que você precisa sudo suaqui. Apenas prefixe o rmcomando com sudo. Por segurança, é uma boa prática (de acordo com os defensores do sudo) não permanecer no prompt raiz quando não for necessário.
thomasrutter
2
Além disso, tenha muita, muita certeza de qual diretório você está, se estiver sudo rm -r.
Tony Martin
Você pode tornar o comando relativo à raiz ( /directory_name) para que não haja dúvida sobre qual diretório você está excluindo.
Yaakov Ainspan