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


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?


540
2017-11-16 04:37


origem


Não consigo remover um diretório como "Nova pasta" usando todos os comandos detalhados acima. Tem duas palavras. Mas eu quero remover esse diretório. Qualquer sugestão será bem-vinda. T.Divakara, Bengaluru, Índia
É o espaço em branco no nome do arquivo, tente usar 'aspas'> rmdir 'Nova Pasta' <então a pasta desaparece, ou use caracteres de escape para caracteres não-visíveis. - Ken Mollerup
Apenas fazendo rm -r lampp vai fazer. - John Strood


Respostas:


Use o comando abaixo:

rm -rf lampp

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

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

Adicionar sudo no início do comando:

sudo rm -rf folderName

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

sudo rm -r folderName

Nota: isto supõe 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 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

757
2017-11-16 05:19



Na minha humilde opinião, é uma boa prática nunca adicionar o "f" na primeira tentativa. Sua finalidade é ignorar certos avisos de aviso que podem ser importantes, especialmente se você o fez acidentalmente no / do diretório errado. Na minha opinião, é bom tentar sem o "f" primeiro, então somente se você estiver encontrando muitos avisos de aviso e tiver certeza de que não há problema em ignorá-los, Ctrl + C e repetir o comando com o " f ". - thomasrutter
@BKSpurgeon não a menos você acidentalmente digita --no-preserve-root também. - muru
@thomasrutter ... Concordo. Um proprietário do arquivo "xxx": raiz  e grupo: raiz pode ser apagado com o -f interruptor; e sem sudo. Esta é a mensagem sem -f: "rm: remove o arquivo regular protegido contra gravação ‘/home/william/.cache/netbeans/v08.01/tmp/xxx’? _ ". _Leia com cuidado. - will


rm -R lampp

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

É uma boa ideia verificar sempre 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

Adicionando -i torna um pouco mais seguro, porque ele irá pedir-lhe em cada eliminaçã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  -f  opção:

Muitas pessoas sugerem usar -f (combinando-o em -Rf ou -rf), alegando que se livrar de solicitações irritantes. No entanto, em casos normais, você não precisa disso, e usá-lo suprime alguns problemas que você provavelmente Faz quer saber sobre. 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 os arquivos sem acesso de gravação, poderá testá-lo com -f. Como alternativa, execute o comando a partir 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.


89
2017-11-16 04:56



Nota: minúsculas -r pode ser usado também e tem o mesmo efeito aqui. Eu só tendem a usar maiúsculas -R porque é consistente com outros comandos que eu uso como grep e chmod, alguns dos quais apenas suportam a forma maiúscula. - thomasrutter
Este trabalhou para mim usando adb (android debug bridge) no Android. Estava tentando rm-rf mas não funcionou. Tive que usar rm -R. Obrigado. - raddevus


Existem muitas 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  = remove diretórios e seus conteúdos de forma recursiva
  • -v  = explicar o que está sendo feito
  • -f  = ignora arquivos inexistentes, nunca avisa

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


21
2017-11-16 05:38





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

Advertência: Certifique-se de que deseja excluir a coisa toda antes de usar o comando abaixo.

$ sudo rm -R [Directory name]

Eu 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


-2
2017-09-28 23:00



"SUDO" não é um comando - "sudo" é. No entanto, você não usa o sudo para excluir um diretório não vazio, você o utiliza para excluir um arquivo que não pertence a você. Fazer isso, como é óbvio, é perigoso e não é muito inteligente, já que você não deve excluir cegamente os arquivos que não possui. - Marty Fried


Pela maneira que eu pessoalmente queria excluir um diretório contendo um arquivo protegido por escrita (s .git e sub-diretórios) e, eventualmente, percebi que eu também precisava se tornar um super usuário, a fim de excluir com sucesso esses arquivos. Aqui está o que eu fiz:

#became super user
sudo su -

#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/

-3
2017-09-17 17:35



Eu não acho que você precise sudo su Aqui. Apenas prefixar o rm comando com sudo. Por segurança, é uma boa prática (de acordo com os proponentes do sudo) não permanecer em um prompt de root quando não for necessário. - thomasrutter
Além disso, esteja muito, muito, muito certo de qual diretório você está se você sudo rm -r. - Tony Martin
Você poderia tornar o comando root-relative (/directory_name) Portanto, não há dúvidas sobre qual diretório você está excluindo. - Yaakov Ainspan