Como cancelar um comando rm?

Como cancelar um comando rm?

Há muitas dúvidas sobre comodesfazer um finalizado rmcomando. No meu caso, meu rm começou a perguntar: “Tem certeza que deseja excluir este arquivo?”

E preciso confirmar para cada um deles. Em vez de confirmar manualmente "s/n":

  1. Posso definir "sim" para o restante enquanto é solicitado s/n para o enésimo arquivo? (equivalente à caixa de seleção "Sim para todos" no Windows) (conheço o yes | rmtruque antes de começar)

  2. Posso abortar a operação enquanto for solicitado s/n para o enésimo arquivo? (exceto para desligar a máquina :))

Responder1

Para realizar a solicitação 1, você precisará usar um programa mais sofisticado do que yesenviar yN número de vezes e depois passar a entrada do teclado além disso. Você não pode fazer isso rmexceto perguntar sempre ( rm -i) ou nunca perguntar ( rm -f).

Você sempre pode rmabortar

  • pressionando Control-C para interrompê-lo (envia SIGINT),
  • pressionando Control-Z para pará-lo (envia SIGSTOP) e depois matá-lo,
  • enviando um SIGTERM ( kill), ou
  • enviando um SIGKILL ( kill -9).

Isso não desfará nenhuma operação de arquivo rmjá executada, mas impedirá que ele execute outras operações de arquivo. Se o rmprocesso estiver solicitando a entrada do usuário, ele não está desvinculando ativamente nenhum arquivo, portanto, matá-lo apenas impedirá que ele continue.

Responder2

GNU rm suporta -i, que presumo ser o que você está se referindo e pede confirmação para cada arquivo, mas também -I, que é um pouco diferente:

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

Quanto a saber se é possível interromper uma interação com rm depois de iniciada, clicar em Ctrl- Cdeve bastar.

Responder3

com Ctrl+ cvocê poderá cancelar a operação.

Mas se você olhar no seu .bashrcarquivo, você pode comentar o alias que força a confirmação, use o -iparâmetro como explicado dhag.

em você .bashrcvocê encontrará uma entrada como esta:

alias rm='rm -i'

se você comentar, sua rm -fvontade funciona diretamente

Responder4

Em bash, você pode ignorar um alias acrescentando a \ao comando, então

rm filename

torna-se

\rm filename

informação relacionada