Remove o arquivo sem perguntar

74

Como posso remover o arquivo sem perguntar ao usuário se ele concorda em excluir o arquivo? Eu estou escrevendo shell script e uso rm função, mas pede "remover arquivo regular?" e eu realmente não preciso disso. Obrigado.

    
por hey 12.10.2011 / 21:28

10 respostas

89

Você pode ter rm aliased para rm -i , então tente isto:

/bin/rm -f file.log

Para ver seus aliases, você pode executar alias .

    
por 12.10.2011 / 21:30
47

O sinalizador de força remove todos os prompts;

rm -f {file}

    
por 12.10.2011 / 21:30
26

Que a força esteja com você - rm -f

    
por 12.10.2011 / 21:30
5

Dentro de um script de shell, você deve usar rm -f <filename> , mas também tem a opção de se livrar da opção -i implícita do seu ambiente inserindo unalias rm no seu shell (ou perfil).

    
por 12.10.2011 / 22:13
5

Se você tiver as permissões necessárias para excluir o arquivo e não quiser ser solicitado, faça o seguinte (-f = force):

rm -f file

Se você não tiver permissões para o arquivo, precisará usar:

sudo rm -f file
    
por 12.10.2011 / 21:31
2

o programa yes repetidamente responde sim a quaisquer prompts. então você pode canalizá-lo para o programa interativo rm para obter o efeito desejado também.

yes | rm <filename>

por outro lado, se você não quiser fazer algo interativo, você pode fazer

yes n | <something interactive>

e isso irá repetir 'n' no fluxo de entrada (respondendo efetivamente não a perguntas)

    
por 12.10.2011 / 22:52
2
\rm file

Barra invertida \ ignora aliases.

    
por 28.07.2016 / 14:15
0

Atualmente estou trabalhando em um sistema, onde o shell bash recebeu a definição do comando rm como uma função em um dos arquivos de configuração globais:

 rm  () { /bin/rm -i ${1+"$@"}; }

Portanto, nenhuma das respostas acima sobre aliases funcionou. Para contrariar o comportamento irritante, desconfio a função rm no meu arquivo .bashrc

 unset -f rm

Eu tive um problema semelhante ao do opener. No entanto, não encontrei nenhuma resposta que mencionasse a possibilidade de que rm estivesse oculto por uma função de shell. Então eu adicionei a resposta aqui na esperança de que seria de ajuda para alguém que enfrenta o mesmo tipo de problema.

Digitar /bin/rm ou rm -f todo o tempo é inconveniente e pode ter consequências ruins (no caso de rm -f ).

    
por 25.02.2015 / 13:18
0

Além de usar o parâmetro -f , você pode usar o comando find , por exemplo,

find -name file.log -delete
    
por 26.03.2017 / 15:45
0

Se o seu rm tiver alias para rm -i , use unalias rm ;

Não use rm -f diretamente, a menos que você realmente queira remover muitos arquivos protegidos contra gravação. Deve haver uma boa razão para usar -f .

No entanto, se você tiver muitos arquivos protegidos contra gravação, poderá preferir rsync -r --delete empty/ removed_dir/ para uma velocidade mais rápida.

    
por 29.03.2018 / 16:28

Tags