Como faço para remover um diretório e todo o seu conteúdo?

No bash, tudo que sei é que

rmdir directoryname 

removerá o diretório, mas apenas se estiver vazio. Existe uma maneira de forçar a remoção de subdiretórios?

Resposta

O comando a seguir fará isso por você . No entanto, tenha cuidado.

rm -rf directoryname 

Comentários

  • " -f " é " –force " que substitui algumas verificações de sanidade e solicitação. Um comando mais seguro para começar seria rm -r directoryname.
  • Por alguma razão, recebo um erro rm: invalid option -- r quando tentando excluir um diretório com rm -r < directoryname >.
  • @Sunspawn Verifique esta questão relacionada para ver se ' é o caso.
  • @JimParis Acho que a palavra " mais seguro " é relativo. Suponha que você esteja escrevendo um script para ser executado em um computador remoto. Esse script tem um comando que supostamente remove um diretório. Aqui, seria " mais seguro " usar rm -rf directoryname porque você não ' não deseja que seu script pause a execução, porque ele ' está aguardando a entrada do usuário. Claro, você deve ter certeza de que excluir o diretório não causaria nenhum dano.

Resposta

se rm -rf directoryname falha, tente usar rm -R -f directoryname ou rm --recursive -f directoryname.

Se você não estiver tendo sorte com eles, considere reinstalar o rm ou trocar shells.

Comentários

  • Essas eram as opções disponíveis no meu rm página man, eu pesquisei digitando man rm para ver minhas opções de exclusão recursiva e as opções forçar .
  • Seu rm lista de páginas do manual -r? O que isso faz? (Experimente em um diretório que você criou apenas para fins de teste, com apenas arquivos fictícios (e talvez subdiretórios) nele.) Qual sistema operacional você está usando?
  • P.S. Se rm -r não ' não funcionar, isso seria um problema de sistema operacional, não um problema de shell. (Estritamente falando, seria um problema com a versão de rm que você ' está usando, então você pode resolvê-lo instalando um versão diferente de rm, ou pesquisando em seu sistema para ver se você já tem uma versão diferente de rm em algum diretório diferente de /bin.)
  • Ah, certo. Esqueci de mencionar que ' m no Ubuntu 14.04 Quando executei man rm em meu terminal, recebi um arquivo de texto com o less visualizador de texto. Eu rolei e encontrei uma entrada recuada com um todo que tinha as opções -R e –recursive combinadas com a opção -r , significando que todos esses argumentos são idênticos.
  • edit: você tentou sudo rm -r directoryName ? As regras não escritas dos comandos básicos são que -r permitirá que um programa seja executado recursivamente em todos os arquivos do seu sistema de arquivos (começando onde você escolher!) E que -f fará as coisas à força, mesmo que ' seja perigoso . ' cd ', ' mv ', ' ls ' principalmente mantém este princípio verdadeiro. ls -r / vai ser um duzie e cp -rf / /dev/null vai destruir tudo em seu sistema de arquivos. < –Nunca execute esse comando!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *