Comando não interativo do Linux rm

0

Eu quero excluir um diretório com seus arquivos e quero fazer isso da seguinte forma:

rm -r dirToDelete\

Infelizmente, sempre me perguntam por cada arquivo único, se eu quiser excluir isso, porque está protegido contra gravação. Existe uma maneira de suprimir essa mensagem de feedback para que apenas todo o diretório com seu conteúdo desaparece?

    
por Mr.Wizard 28.09.2010 / 15:52

6 respostas

7

Muitas distros são "rm" para "rm -i". Pessoalmente, acho que essa é a ideia mais estúpida de todas, então primeiro faça um "alias rm" para ver se é esse o caso, ou apenas verifique se "/ bin / rm" se comporta de maneira diferente. Se estiver, procure em / etc / profile, /etc/profile.d, / etc / bashrc ou em seu próprio .profile ou .bashrc para ver onde ele está configurado e removê-lo.

    
por 28.09.2010 / 15:57
5

Você quer rm -rf .

Na página do manual rm:

-f, --force
              ignore nonexistent files, never prompt
    
por 28.09.2010 / 15:52
3

Adicione -f , por exemplo rm -rf dirToDelete - mas tenha cuidado para obter o nome do diretório correto.

Nota: esta questão não é realmente relacionada com programação, pelo que deve ser feita no super-utilizador .

    
por 28.09.2010 / 15:53
2

rm pede confirmação porque está com alias para rm -i . Para ignorar o alias de um único comando, adicione uma barra invertida na frente do comando:

\rm -r dirToDelete

Para rm , você também pode cancelar o -i com um -f :

rm -rf dirToDelete
    
por 29.09.2010 / 01:18
0

Espero que em breve distros que fazem

alias rm='rm -i'

mude para

alias rm='rm -I'

da página do manual:

-I     prompt once before removing more than three files, or when removing 
       recursively. Less intrusive than -i, while still giving protection 
       against most mistakes

Sugiro que você modifique seu .bashrc para ainda protegê-lo de erros; -)

    
por 11.05.2011 / 17:21
0

rm é codificado para solicitar "interativamente" (prompt aguardando entrada do usuário) em arquivos protegidos contra gravação. Existem dois métodos para impedir que rm pergunte:

rm -rf somedir

e

rm -r --interactive=never somedir

(ambos também funcionam sem -r ao excluir arquivos em vez de dirs)

explicação:

-f torna rm "ignorar arquivos e argumentos inexistentes, nunca solicitar".

--interactive=never faz o que diz: nunca seja interativo. em outras palavras: nunca avisar.

a diferença entre -f e --interactive=never é esta parte: "ignorar arquivos e argumentos inexistentes".

compare:

$ rm -rf nonexistingname
$ echo $?
0

e

$ rm -r --interactive=never nonexistingname
rm: cannot remove 'nonexistingname': No such file or directory
$ echo $?
1

a diferença é principalmente interessante ao escrever scripts em que você nunca quer que rm seja interativo, mas ainda assim deseja manipular erros.

Resumo de

: na linha de comando, use rm -rf . nos scripts use rm -r --interactive=never .

    
por 18.04.2018 / 13:06

Tags