Comment puis-je faire déplacer des fichiers ‘rm’ vers la poubelle?

Steve

Comment puis-je faire déplacer des fichiers ‘rm’ vers la poubelle?


J’utilise le terminal quotidiennement, j’utilise souvent rm DirectoryName . Parfois, je deviens un peu fou et je fais de la rm * . Comme vous pouvez l’imaginer, ces manigances sont parfois revenues et m’ont frappé au visage. Est-ce que quelqu’un sait comment je crée un mappage donc rm whatever ce qui déplace tout dans la corbeille que je supprime ensuite manuellement.

bmike ♦

Il est difficile de placer des roues d’entraînement sur un outil de précision comme rm sans casser d’autres scripts. Quelque chose comme l’ alias rm=/bin/rm -i devrait vous permettre de sortir de votre fou en toute sécurité. Aussi – quel répertoire Corbeille voulez-vous que rm utilise? Cela devient maladroit car Mac OS X a un répertoire de corbeille pour chaque volume ainsi qu’une corbeille de niveau utilisateur.

Daniel Serodio

Si vous utilisez zsh, par défaut, il vous demandera quand vous faites rm * ou rm /path/*

Réponses


 jm666

Mauvaise idée

Utiliser rm pour déplacer des fichiers vers la corbeille est comme weed. C’est commun et agréable, mais cela peut être mauvais pour vous à l’avenir. 😉

Vous avez vraiment besoin de vous contrôler lorsque vous utilisez rm .


N’utilisez pas rm

Imaginez , vous vous habituez à rm passer à la poubelle et prenez l’habitude. Bien sûr, votre système est sûr, mais lorsque vous vous connectez au carnet d’un ami (ou de votre femme ou de votre patron) et que vous devez supprimer quelque chose? Vous utiliserez réellement le vrai rm – supprimant ces fichiers pour toujours. C’est une mauvaise habitude, et vous devez le savoir.

Donc, à la place, installez rmtrash et prenez l’habitude de l’utiliser:

 # install rmtrash, (either from the macports or by the brew.) $ alias trash = "rmtrash" $ alias del = "rmtrash"         # del / trash are shorter than rmtrash 

Corriger les mauvaises habitudes

Une autre chose que vous pouvez faire pour vous forcer à utiliser rmtrash au lieu de rm est de l’ rmtrash à un message personnalisé dans votre .profile .

 alias rm = "echo Use 'del', or the full path ie '/bin/rm'" 

Ainsi, chaque fois que vous utilisez rm , vous serez invité à utiliser rmtrash ou /bin/rm . N’oubliez pas que cela n’est que temporaire, après un certain temps, vous devez supprimer l’alias.


Ne faites jamais quelque chose comme ça:

 $ pwd / $ cd / tnp ;  rm - rf * sh :  cd :   / tnp :   No  such file or directory 

Pop Quiz: Dans quel répertoire la commande rm s’exécutera-t-elle? 🙂

Ps: vient de supprimer certaines modifications indésirables de ce message, ce qui a ajouté des non-sens sur les alias.

Jason Salaz

&& est votre bouée de sauvetage. ; est le diable. PS La réponse est que presque tout sur votre système disparaît, dans l’exemple ci-dessus.

Mike Graf

Bien que rm ne fasse pas de suppression sécurisée, mais le passage à la corbeille / vide le fait (dans ma configuration).

Daniel Sokolowski

Les utilisateurs Debian / Ubuntu installent plutôt trash-cli , ex. aptitude install trash-cli – voir github.com/andreafrancia/trash-cli

parth

@ jm666 Consultez également la corbeille ( article de blog et source ). Il demande au Finder de supprimer les fichiers. De plus, il peut également utiliser des API de système de fichiers Objective C standard (plus rapides) et se replier sur le Finder si les droits sont insuffisants. brew install trash

Warren Young

rmtrash est vraiment vieux, ayant été mis à jour pour la dernière fois en 2003, et cela se voit. Il a beaucoup moins d’options que rm , et si vous dites rmtrash sur un volume secondaire, il déplace ces fichiers vers le dossier de la corbeille de votre utilisateur sur le lecteur système, ce qui peut prendre beaucoup de temps pour les fichiers volumineux. L’option de trash recommandée par parth est meilleure, résolvant le problème de garder le même volume, mais il manque encore de nombreuses options rm .


 Caleb

Je peux penser à une douzaine de façons de coder cela, mais je refuse catégoriquement d’en saisir une dans une réponse. Je vous recommande fortement de limiter votre habitude de devenir un peu fou . Vous ne devriez pas du tout avoir l’habitude d’utiliser rm si vous ne pouvez pas l’utiliser correctement.

Le problème fondamental ici est que même si vous installez un filet de sécurité sur votre propre système, cela ne vous aidera qu’à garder vos mauvaises habitudes et lorsque vous vous trouvez sur une autre machine un jour qui n’a pas les mêmes protections personnalisées, vous faire quelque chose de terriblement mauvais.

La bonne solution consiste à utiliser rm tel qu’il était censé être utilisé, y compris l’ajout manuel de l’argument -i chaque fois que vous avez un doute sur la façon dont un glob va se développer, et à avoir de bonnes sauvegardes système que vous pouvez restaurer en cas d’erreur grave de l’utilisateur. Essayer d’ajouter « poubelle » aux commandes qui dans le reste de l’univers ne l’utilisent pas est une étape à mi-chemin qui est la pire des deux mondes.

Utilisez la poubelle ou non. Utiliser rm ne va pas dans la corbeille, il le supprime.

Si vous souhaitez utiliser la corbeille, il n’y a rien de mal à cela. rmtrash simplement l’habitude d’utiliser la commande rmtrash au lieu de rm . Cela aidera votre cerveau à comprendre ce qui se passe et ne vous mettra pas dans une mauvaise habitude qui causera du chagrin plus tard.

Steve

Votre point n’est pas calculé dans ce cas. Les gens suppriment accidentellement des choses quotidiennement, les sauvegardes du système ne fonctionnent pas dans le cas d’un ordinateur personnel (comme le mien) car les ressources sont limitées, un passage à la poubelle est un moyen beaucoup plus efficace de gérer ces suppressions pour moi. cas d’utilisation.

Caleb

@steve vous avez complètement raté le point. rm par définition supprime un fichier du disque. Il ne l’envoie pas à la poubelle. Vous apprendre à utiliser rm lorsque vous entendez envoyer dans la corbeille vous prépare au désastre. Si vous souhaitez envoyer dans la corbeille, utilisez rmtrash ou un programme conçu pour le travail, vous ne rencontrerez pas de cauchemars plus tard. Je ne disais pas que l’utilisation de la corbeille est intrinsèquement mauvaise, mais si vous voulez l’utiliser, ne la connectez pas à quelque chose qui n’était pas destiné à l’utiliser!

GabLeRoux

brew install rmtrash et cesser d’utiliser rm

Sheharyar

Ceci est une réponse impressionnante, clarifié quelques choses pour moi. Je vais essayer de prendre l’habitude d’utiliser rmtrash au lieu de rm .

Natesh bhat

sudo add-apt-repository ppa: nateshmbhat / rm-trash. Ensuite, installez « rm-trash »


 marque

Utilisez un outil en ligne de commande comme rmtrash ou un script qui utilise appscript pour appeler le Finder pour y supprimer.

Après avoir installé rmtras pour dire / usr / local / bin / rmtrash le créateur un alias pour bash

 alias rm='rmtrash' 

Vous pouvez utiliser rm pour appeler directement rm et ignorer l’alias

Caleb

Si vous utilisez un outil comme rmtrash , faites-vous plaisir et utilisez-le par son propre nom . N’aliasez jamais des choses qui ne sont pas rm , cela vous mordra un jour.

Poiré

rmtrash n’est pas compatible avec rm (ne prend pas en charge les mêmes paramètres de ligne de commande comme -r ), donc un alias n’est vraiment pas utile dans tous les cas


 Scott Bridgman

Je veux juste ajouter une habitude utile pour ceux qui ne le font pas déjà. Avant d’utiliser rm pour quoi que ce soit, faites d’abord ‘ls’ dessus. De cette façon, vous pouvez voir tous les fichiers que vous souhaitez supprimer. Ensuite, au lieu de retaper, tirez simplement la commande ‘ls’ précédente et remplacez ls par rm. Cette habitude a réduit beaucoup d’anxiété lors de l’invocation de rm.


 Paschalis

Introduction (vous pouvez l’ignorer)

Pour moi, rm -i serait suffisant, car il vous invite à supprimer tout fichier. Cependant, une sécurité supplémentaire fournie par safe-rm n’est pas du tout une mauvaise idée.

Un alias simple comme rm=safe-rm -i pourrait suffire, mais rm -rf ne fonctionnerait pas, car -i est remplacé par -f .

Donc, nous devons nous assurer que -i vient toujours après -f !


Ma solution (3 étapes):

  • Installer Safe-RM: brew install safe-rm

    Vous pouvez toujours travailler avec rm , mais vous avez modifié le RM_BIN à l’étape suivante

  • Modifiez votre ~/.profile (ou bash_profile ou autre), et mettez l’extrait de code suivant, (qui contient un alias et une function ):

     alias rm="rm_i" function rm_i(){ RM_BIN=safe-rm # you can replace it with regular rm if you like args="" files="" argsDone=0 # to make sure arguments are before the files for var in "[email protected]" do if [[ $var == -* ]] ; then if [ $argsDone -eq 1 ] ; then $RM_BIN # just to show the usage of rm return fi args+=" $var" else argsDone=1 files+=" $var" fi done args+=" -i" # Put -i at the end (so rm -rf will not ignore it) $RM_BIN $args $files } 
  • Enfin , logout et login -vous pour que les mises à jour du .profile soient appliquées. NE L’UTILISEZ PAS avant une déconnexion / connexion!


Remarques:

  • Il peut être appliqué à n’importe quelle distribution Linux, avec de légères modifications.
  • Cela ne déplace PAS votre personnel au thrash. Il vous demande juste avant de supprimer chaque fichier!
  • Il fonctionne avec -rf et avec des expressions rationnelles.
  • Si vous voulez vraiment utiliser rm -rf SANS être invité pour chaque fichier / dossier, vous pouvez toujours utiliser /bin/rm -rf (ou safe-rm -rf si vous l’avez installé).
  • Plus de rm -rf ou rm * involontaire 😉
Caleb

Alias ​​rm à quelque chose de plus grand que lui-même (par exemple alias rm='sudo rm' ), c’est comme attacher un Uzi à un couteau de cuisine: un jour, vous obtiendrez plus que ce que vous aviez prévu lorsque vous allez couper cet ananas. Alias ​​rm à quelque chose de plus petit que lui-même (par exemple, alias rm='rmtrash' ), c’est comme laisser vos enfants jouer avec des grenades à main désarmées et ne pas leur enseigner ce qu’ils sont réellement: un jour, lorsqu’ils en rencontreront un réel, ils ne le traiteront pas avec le bonne prudence. Quoi qu’il en soit, l’aliasing rm est mauvais pour votre sécurité personnelle et votre santé publique!

Caleb

Utiliser quelque chose comme safe-rm est un conseil raisonnable. L’aliaser à rm ne l’est pas. Utilisez-le sous son propre nom ou un alias unique afin de ne pas tenir pour acquis un filet de sécurité qui ne sera pas toujours là.

Paschalis

Je vois ce que tu veux dire. MAIS, la raison pour laquelle je l’ai fait, c’est que je travaille avec de nombreux terminaux .. certains terminaux distants et certains locaux. Et je veux lancer beaucoup de grenades sur les terminaux distants, mais quand je tire accidentellement le sceau de sécurité sur le terminal local, je veux voir un avertissement avant que l’ explosion ne se produise.

Manishearth

@Paschalis et que se passe-t-il si un script ou un programme installé doit utiliser rm ? En outre, l’argument de Caleb est encore plus valable – si vous vous habituez à un système avec un alias de Safe-rm, alors vous pourriez devenir imprudent avec lui et éventuellement l’utiliser sur un système avec un rm sans alias.

 

#la, comment, déplacer, des, Faire, fichiers, poubelle?, Puis-je, rm`, vers

 

wiki

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *