Comment annuler une command rm?

Il y a beaucoup de questions sur comment annuler une command rm terminée . Dans mon cas, mon rm a commencé à requestr: "Êtes-vous sûr de vouloir supprimer ce file?"

Et j'ai besoin de confirmer pour chacun d'eux. Au lieu de confirmer manuellement "y / n":

  1. Est-ce que je peux mettre "oui" au rest en demandant y / n pour le n'th file? (équivalent à la checkbox "Yes to All" sous Windows) (je connais l'astuce yes | rm avant de commencer)

  2. Puis-je annuler l'opération en demandant y / n pour le nième file? (sauf pour arrêter la machine :))

Pour accomplir la requête 1, vous aurez besoin d'utiliser un programme plus sophistiqué que yes pour envoyer y N nombre de fois, puis passer l'input au keyboard à travers au-delà. Vous ne pouvez pas le faire avec rm sauf pour toujours requestr ( rm -i ) ou ne jamais requestr ( rm -f ).

Vous pouvez toujours abandonner rm par

  • en appuyant sur Control-C pour l'interrompre (envoie SIGINT),
  • en appuyant sur Control-Z pour l'arrêter (envoie SIGSTOP) puis en le tuant,
  • envoyer un SIGTERM ( kill ), ou
  • en lui envoyant un SIGKILL ( kill -9 ).

Cela n'annulera pas les opérations de files rm déjà effectuées, mais elles l'empêcheront d'effectuer d'autres opérations de files. Si le process rm request actuellement l'input de l'user, il ne dissocie pas activement les files afin de les tuer, ce qui les empêchera de continuer.

GNU rm supporte -i , ce que je suppose est ce dont vous parlez et request confirmation pour chaque file, mais aussi -I , ce qui est un peu différent:

 -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 

Quant à savoir s'il est possible d'arrêter une interaction avec rm après son démarrage, il faut le faire avec CtrlC .

avec Ctrl + c, vous pourrez annuler l'opération.

Mais si vous regardez dans votre file .bashrc , vous pouvez commenter l'alias qui force la confirmation, il utilise le paramètre -i comme expendu dhag.

en vous .bashrc vous findez une input comme celle-ci:

 alias rm='rm -i' 

si vous le commentez, votre rm -f fonctionnera directement

Sous bash , vous pouvez contourner un alias en ajoutant un \ à la command, alors

 rm filename 

devient

 \rm filename