@ JimParis Acho que a palavra "mais seguro" é relativa. Suponha que você esteja escrevendo um script para executar em um computador remoto. Esse script possui um comando que deve remover um diretório. Aqui, seria "mais seguro" usar rm -rf directorynameporque você não gostaria que seu script pausasse a execução, porque está aguardando a entrada do usuário. Obviamente, você deve ter certeza de que excluir o diretório não faria mal.
John Red
7
Se rm -rf directorynamefalhar, tente usar rm -R -f directoryname, ou rm --recursive -f directoryname.
Se você não tiver sorte com isso, considere reinstalar o rm ou alternar os shells.
Essas eram as opções disponíveis na minha página de manual, procurei digitando man rmpara ver minhas opções sobre exclusão recursiva e as opções de força .
saterHater
Sua rmpágina de manual lista -r? O que isso faz? (Experimente-o em um diretório criado apenas para fins de teste, com apenas arquivos fictícios (e talvez subdiretórios).) Qual sistema operacional você está usando?
G-Man
PS Se rm -rnão funcionar, isso seria um problema do SO, não um problema de shell. (Estritamente falando, seria um problema com a versão rmque você está usando, para que você possa resolvê-lo instalando uma versão diferente rmou pesquisando no sistema para ver se você já tem uma versão diferente rmem algum diretório diferente de /bin.)
G-Man
Ah, certo. Esqueci de mencionar que estou no Ubuntu 14.04 Quando corri man rmno meu terminal, ele me deu um arquivo de texto com o lessvisualizador 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.
saterHater
11
edit: você já tentousudo rm -r directoryName ? As regras não escritas dos comandos básicos são que -rpermitirão 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 com força, mesmo que seja perigoso . 'cd', 'mv', 'ls' principalmente mantém esse princípio verdadeiro. ls -r /será um duzie e cp -rf / /dev/nulldestruirá tudo no seu sistema de arquivos. <- Nunca execute esse comando!
rm -r directoryname
.rm: invalid option -- r
erro ao tentar excluir um diretório com rm -r <directoryname>.rm -rf directoryname
porque você não gostaria que seu script pausasse a execução, porque está aguardando a entrada do usuário. Obviamente, você deve ter certeza de que excluir o diretório não faria mal.Se
rm -rf directoryname
falhar, tente usarrm -R -f directoryname
, ourm --recursive -f directoryname
.Se você não tiver sorte com isso, considere reinstalar o rm ou alternar os shells.
fonte
man rm
para ver minhas opções sobre exclusão recursiva e as opções de força .rm
página de manual lista-r
? O que isso faz? (Experimente-o em um diretório criado apenas para fins de teste, com apenas arquivos fictícios (e talvez subdiretórios).) Qual sistema operacional você está usando?rm -r
não funcionar, isso seria um problema do SO, não um problema de shell. (Estritamente falando, seria um problema com a versãorm
que você está usando, para que você possa resolvê-lo instalando uma versão diferenterm
ou pesquisando no sistema para ver se você já tem uma versão diferenterm
em algum diretório diferente de/bin
.)man rm
no meu terminal, ele me deu um arquivo de texto com oless
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.sudo rm -r directoryName
? As regras não escritas dos comandos básicos são que-r
permitirão 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 com força, mesmo que seja perigoso . 'cd', 'mv', 'ls' principalmente mantém esse princípio verdadeiro.ls -r /
será um duzie ecp -rf / /dev/null
destruirá tudo no seu sistema de arquivos. <- Nunca execute esse comando!