Existe-t-il un script / application Linux qui, au lieu de supprimer des fichiers, les déplace vers un emplacement spécial pour la «corbeille»? Je voudrais cela comme un remplacement pour rm
(peut-être même aliasing le dernier; il y a des avantages et des inconvénients pour cela).
Par «corbeille», je veux dire un dossier spécial. Un mv $* ~/.trash
fichier unique est une première étape, mais dans l’idéal, il doit également gérer la suppression de plusieurs fichiers du même nom sans écraser les fichiers supprimés plus anciens, et permettre de restaurer les fichiers à leur emplacement d’origine à l’aide d’une simple commande (sorte d’annulation). De plus, il serait bien que la corbeille soit automatiquement vidée au redémarrage (ou un mécanisme similaire pour empêcher une croissance sans fin).
Des solutions partielles existent, mais l’action de «restauration» en particulier n’est pas anodine. Existe-t-il des solutions existantes qui ne reposent pas sur un système de corbeille à partir d'un shell graphique?
(En passant, il y a eu d'innombrables discussions sur la justification de cette approche, plutôt que sur l'utilisation de sauvegardes fréquentes et de VCS. Bien que ces discussions aient un sens, je pense qu'il reste encore un créneau pour ma demande.)
gvfs-trash
dans le passé, mais je n'ai jamais eu besoin de restaurer depuis la ligne de commande jusqu'à susciter ma curiosité. La réponse à la question liée peut être utile.Réponses:
Il existe une spécification (brouillon) pour la corbeille sur freedesktop.org. C'est apparemment ce qui est généralement mis en œuvre par les environnements de bureau.
Une implémentation en ligne de commande serait trash-cli . Sans avoir examiné de plus près, il semble fournir la fonctionnalité que vous souhaitez. Sinon, dites-nous dans quelle mesure il ne s'agit que d'une solution partielle.
En ce qui concerne l'utilisation de tout programme en remplacement / alias
rm
, il y a de bonnes raisons de ne pas le faire. Les plus importants pour moi sont:rm
les options de et agir en conséquencela source
rm
afin que je ne puisse pas l'utiliser accidentellement (il y a toujours un/bin/rm
cas où j'en aurais vraiment besoin).Trash-cli est une application Linux pouvant être installée à l’aide d’apt-get sous Ubuntu ou de yum dans Fedora. L'utilisation de la commande
trash listOfFiles
déplacera le spécifié dans votre corbeille.la source
Les réponses précédentes mentionnent des commandes
trash-cli
etrmtrash
. Ni ceux-ci ne sont trouvés par défaut sur Ubuntu 18.04, mais la commandegio
est.gio help trash
Sorties commandantes :J'ai testé à l'aide
gio trash FILENAME
de la ligne de commande, et cela fonctionne exactement comme si j'avais sélectionné le fichier dans le navigateur de fichiers et cliqué sur le bouton SUPPR: le fichier est déplacé dans le dossier Corbeille du bureau. (La commande ne demande pas de confirmation même si je n'ai pas utilisé l'-f
option.)Suppression de fichiers de cette façon est réversible, tout en étant plus pratique que la redéfinition
rm
d'êtrerm -i
pour la sécurité et d' avoir à confirmer chaque suppression, ce qui vous laisse toujours pas de chance si vous confirmez accidentellement une suppression , vous ne devriez pas avoir.J'ai ajouté
alias tt='gio trash'
à mon fichier de définitions d'alias;tt
est un mnémonique pour To Trash.Ajouté lors de la modification du 2018-06-27: Sur les ordinateurs serveurs, il n’existe pas d’équivalent d’un répertoire de corbeille. J'ai écrit le script Bash suivant qui fait le travail; sur les ordinateurs de bureau, il utilise
gio trash
, et sur d’autres, le (s) fichier (s) donné (s) en tant que paramètre (s) dans un répertoire de corbeille qu’il crée. Script mis à jour le 2019-09-05.la source
Il y a un petit utilitaire appelé rmtrash qui fait cela.
Il ne semble pas répondre aux paramètres tels que
-r
ou-f
(il semble qu’il s'agisse essentiellement de déplacer le fichier / répertoire dans le répertoire ~ / .Trash), mais il ne remplacera pas les fichiers portant le même nom (il ajoute "Copier" à fichiers / répertoires du même nom).Installer avec brasser
la source
Voici un système de corbeille rapide et sale qui gère les conflits de noms et permet même plusieurs fichiers supprimés sur le même chemin tant que vous ne supprimez pas plus d'un fichier par seconde.
Attention: j'ai tapé ce code directement dans mon navigateur. C'est probablement cassé. Ne l'utilisez pas sur les données de production.
Problèmes connus:
trash
devrait faire face aux nouvelles lignes dans les noms de fichiers, maisuntrash
ne le fait pas, car elle repose surgrep
et les nouvelles lignes ne sont pas échappées dans le fichier de métadonnées.la source
Commencez par définir une
move_to_trash
fonction:Puis alias
rm
à cela:Vous pouvez toujours appeler vieux
rm
en échappant avec une barre oblique inverse, comme ceci:\rm
.Je ne sais pas comment vider le répertoire de la corbeille au redémarrage (en fonction du système, vous devrez peut-être consulter les
rc*
scripts), mais il peut également être intéressant de créer unecron
tâche qui vide le répertoire périodiquement.la source
rm
et vos fichiers.del
pourrait être un meilleur choix.Vous pouvez utiliser mon del:
http://fex.belwue.de/fstools/del.html
del déplace les fichiers dans un sous-répertoire .del / (et retour)
la source
Dans KDE 4.14.8, j’utilisais la commande suivante pour déplacer les fichiers dans la corbeille (comme si elle avait été supprimée dans Dolphin):
Annexe I: J'ai découvert la commande avec
Annexe II: la fonction (puis la source dans votre .bashrc)
la source