Hay muchas preguntas sobre cómodeshacer un terminado rm
dominio. 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":
¿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 | rm
truco antes de comenzar)¿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 yes
enviar y
N número de veces y luego pasar la entrada del teclado más allá de eso. No puedes hacerlo rm
excepto preguntar siempre ( rm -i
) o nunca preguntar ( rm -f
).
Siempre puedes rm
cancelar
- 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 rm
que ya se haya realizado, pero evitará que realice más operaciones de archivo. Si el rm
proceso 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 .bashrc
archivo, puedes comentar el alias que fuerza la confirmación, usa el -i
parámetro como explicado dhag.
en ti .bashrc
encontrarás una entrada como esta:
alias rm='rm -i'
si lo comentas tu rm -f
testamento funciona directamente
Respuesta4
En bash
, puede omitir un alias anteponiendo a \
al comando, de modo que
rm filename
se convierte
\rm filename