annuler le rm de Linux? [dupliquer]

31

Duplicata possible: commande
UNDO LINUX Trash

Salut,

Existe-t-il un moyen simple d'annuler une rmcommande?

La question est purement théorique; Je n'ai JAMAIS supprimé le journal d'une file d'attente de référence qui a pris un déjeuner entier pour fonctionner.

Adam Matan
la source
1
... ou du moins très étroitement liés, même si la question elle-même est formulée pour être un peu plus générale
Jonik

Réponses:

33

Sur ubuntu ou similaire:

$ sudo apt-get install trash-cli
$ alias rm=trash

Ensuite, mettez cet alias dans .bashrc ou le script de connexion approprié pour le shell de votre choix.

Le trash-clipackage est une interface de ligne de commande vers la même poubelle que GNOME et KDE et d'autres utilisent. Ainsi, tout ce que vous supprimez via la trashcommande peut être restauré par GNOME / KDE et vice-versa.

Les autres commandes dans le trash-clipaquet sont trash-list, trash-empty, et restore-trash.

Ryan C. Thompson
la source
11
+1 pour trash-cli, -1 pour aliasing rm.
1
Quel est le problème avec l'aliasing rm? J'aime avoir un bouton Annuler pour mes suppressions accidentelles, même sur la ligne de commande. En outre, trash-clicela facilite explicitement cela en acceptant (et en ignorant) de nombreuses rmoptions GNU . De plus, le PO a demandé un moyen de défaire. Cette solution ne répond pas correctement à la question sans l'alias.
Ryan C. Thompson,
15
@Ryan: Parce que vous vous habituez à rm pour signifier quelque chose de différent de ce que fait réellement la commande rm, et puis vous faites une erreur quand elle n'est pas aliasée. Habituez-vous à utiliser la commande corbeille à la place et cela ne peut pas arriver.
5
@Roger: Ou ... vous pouvez vous aliaser rmpuis vous hypnotiser pour oublier que vous l'avez fait. De cette façon, vous pouvez continuer à utiliser rmcomme si c'était final ... mais si vous vous glissez et que vous dites "oh non !!" vous n'êtes pas complètement foutu. (c.-à-d. ne comptez pas sur sa fonctionnalité "récupérable")
mpen
@RyanThompson: C'est une bonne astuce, mais comment configurer cela pour qu'il fonctionne aussi sudo rm?
takehin
15

La réponse traditionnelle est:

Vous récupérez le fichier à partir de la dernière sauvegarde. Vous avez une sauvegarde récente, non?

car sur de nombreux systèmes de fichiers unix, ce simple n'est pas possible ou est très difficile.

Comme d'autres l'ont fait remarquer, ce n'est plus la fin et la fin du problème, mais ne pas commettre d'erreurs de ce genre reste l'approche privilégiée.

dmckee
la source
5
J'ai vraiment l'intention de mettre tous mes scripts sur un référentiel bzr engagé toutes les heures.
Adam Matan
3
La réponse moderne est: récupérer le fichier à partir d'un instantané récent du système de fichiers. :-)
knweiss
C'est une bonne question ... Je ne fais généralement pas de sauvegardes de ~ / Téléchargements ... et j'ai effacé mon contenu en passant rm -fr *(1)*... chaque fichier a été supprimé. Avoir des sauvegardes n'est donc pas toujours la solution. Les sons de la corbeille se refroidissent.
m3nda
Non, avoir des sauvegardes est TOUJOURS la solution. Ce n'est pas parce que vous avez choisi de ne pas sauvegarder quelque chose, que la sauvegarde n'est pas la solution, cela vous rend stupide de ne pas sauvegarder quelque chose.
djsmiley2k - CoW
4

Pour éviter des erreurs futures hypothétiques, vous pouvez alias rm en rm -i ...

Rich Bradshaw
la source
6
Je pense généralement que cela n'empêchera jamais aucune erreur (le `` y '' est tapé assez automatiquement), mais consomme beaucoup de temps et encourage l'utilisation de He-Whose-Name-Must-Not-Not-Not-Be-Mentioned rm -rf.
Adam Matan
Cela vous donne un coup de pouce supplémentaire avant de gâcher les choses. J'ai généralement juste lsavec les mêmes paramètres avant afin que je puisse voir ce qui va se passer.
Rich Bradshaw
Je supprime habituellement des fichiers exprès, je réalise juste que j'avais besoin de ces fichiers plus tard. Si interactif n'aiderait pas
andrewtweber