¿Cómo cancelar un comando rm?

¿Cómo cancelar un comando rm?

Hay muchas preguntas sobre cómodeshacer un terminado rmdominio. En mi caso, mi empresa empezó a preguntar: "¿Está seguro de que desea eliminar este archivo?"

Y necesito confirmar para cada uno de ellos. En lugar de confirmar manualmente "s/n":

  1. ¿Puedo establecer "sí" para el resto mientras me preguntan si/n para el enésimo archivo? (equivalente a la casilla "Sí a todos" en Windows) (Conozco el yes | rmtruco antes de comenzar)

  2. ¿Puedo cancelar la operación mientras me preguntan y/n para el enésimo archivo? (excepto para apagar la máquina :))

Respuesta1

Para cumplir con la solicitud 1, necesitará usar un programa más sofisticado que yesenviar yN número de veces y luego pasar la entrada del teclado más allá de eso. No puedes hacerlo rmexcepto preguntar siempre ( rm -i) o nunca preguntar ( rm -f).

Siempre puedes rmcancelar

  • presionando Control-C para interrumpirlo (envía SIGINT),
  • presionando Control-Z para detenerlo (envía SIGSTOP) y luego matándolo,
  • enviando un SIGTERM ( kill), o
  • enviándole un SIGKILL ( kill -9).

Esto no deshará ninguna operación de archivo rmque ya se haya realizado, pero evitará que realice más operaciones de archivo. Si el rmproceso actualmente solicita la entrada del usuario, no está desvinculando activamente ningún archivo, por lo que eliminarlo simplemente evitará que continúe.

Respuesta2

GNU rm admite -i, que supongo que es a lo que te refieres y solicita confirmación para cada archivo, pero también -I, que es un poco 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

En cuanto a si es posible detener una interacción con rm después de que haya comenzado, presionar Ctrl- Cdebería ser suficiente.

Respuesta3

con Ctrl+ cpodrás cancelar la operación.

Pero si miras en tu .bashrcarchivo, puedes comentar el alias que fuerza la confirmación, usa el -iparámetro como explicado dhag.

en ti .bashrcencontrarás una entrada como esta:

alias rm='rm -i'

si lo comentas tu rm -ftestamento funciona directamente

Respuesta4

En bash, puede omitir un alias anteponiendo a \al comando, de modo que

rm filename

se convierte

\rm filename

información relacionada