On rm: Il dissocie un fichier de celui-ci inode. La question: "Où vont les fichiers lorsque la rmcommande est exécutée " -> unix.stackexchange.com/questions/10883/… pourrait également être une bonne lecture pour vous.
erch
Réponses:
62
Il n'y a pas d'annulation générale pour chaque opération dans le terminal. Si vous souhaitez récupérer un fichier après utilisation, rmvous devrez consulter le logiciel de récupération.
Une option pour vous éviter de futures erreurs est de créer aliasdes commandes alternatives pour supprimer les fichiers. Ajoutez-les à votre ~/.bashrcet prenez l'habitude de les utiliser à la place de rm.
alias rmi = 'rm -i'
Si vous utilisez rmi, vous serez invité à confirmer les suppressions futures. Essayez d'éviter de développer l'habitude d'appuyer yimmédiatement après avoir émis une rmicommande, car cela irait à l'encontre du but.
Vous pouvez également déplacer les fichiers supprimés par la trshcommande dans le terminal vers votre corbeille (sur KDE et Gnome):
alias trsh='mv --target-directory="$HOME/.Trash"'
Si vous utilisez trsh, vous aurez une capacité "d'annulation de suppression" limitée. Attention à ça
trsh dir1/file1 dir2/file1
peut toujours entraîner une perte de données irrécupérable.
+1 pour une bien meilleure réponse que la mienne =)
The How-To Geek
9
le deuxième alias est très, très intelligent. +1.
LiraNuna
3
trash () {mv $ @ ~ / .Trash; } # fonction bash, pas un alias. Changer le comportement attendu de rm est une mauvaise idée, à mon humble avis.
Richard Hoskins
20
Le risque avec aliasing rmpour rm -ique vous vous habituez au filet de sécurité qu'il vous donne. Ensuite, vous passez sur une autre machine, qui n'a pas cet alias ...
Dentrasi
3
Pour les raisons que Richard et Dentrasi mentionnent, je préfère créer une fonction personnalisée ou un alias rmi-> rm -i. C'est vraiment une erreur de simplement entraver un programme existant en le replaçant sur lui.
Télémaque
6
Il n'y a pas de corbeille pour la ligne de commande.
Vous pouvez essayer certains des divers utilitaires de suppression, mais rien ne garantit qu'ils fonctionneraient.
Oui, il y a une corbeille pour la ligne de commande. Voir trash-cli dans une autre réponse.
Sparhawk
Trash-cli est tellement bon :) et utilise Trashlib, mieux que de simplement déplacer des fichiers.
m3nda
5
Vous pouvez utiliser trash-cli si vous utilisez KDE lorsque vous exécutez une interface graphique. Il s'agit d'un utilitaire de ligne de commande pour supprimer / restaurer à l'aide des fonctions de corbeille de KDE.
trash-cli fournit également fonctionne avec la corbeille GNOME et il est conçu pour fournir la compatibilité des options rm (pour l'aliasing).
Andrea Francia
N'oubliez pas de faire en alias rm=trashsorte que vos erreurs de ligne de commande typiques soient dotées de boutons d'annulation.
Ryan C. Thompson,
Je pense que alias rm=trashc'est potentiellement dangereux, s'il y a une chance que vous utilisiez le système de quelqu'un d'autre un jour et oubliez (ou ssh). Beaucoup plus sûr de simplement s'habituer à écrire trashau lieu de rm.
Sparhawk
4
Vous pouvez créer rmun alias pour la trashcommande (vous devrez d' trashabord l' installer .) Ajoutez ceci à votre ~/.bashrc:
alias rm='trash'
C'est préférable alias rm='mv --target-directory=$HOME/.Trash'car ~ / .Trash n'est PAS le dossier de la corbeille pour gnome. Il est préférable à mon humble avis de trashsavoir où se trouve le dossier de la corbeille.
btw j'aurais posté ceci dans un commentaire mais je n'ai pas assez de représentant.
+1 pour "puisque ~ / .Trash n'est PAS le dossier de la corbeille pour gnome." Cependant, rm ne doit pas non plus être aliasé dans la corbeille. Vous devez simplement utiliser la corbeille au lieu de rm si c'est ce que vous voulez.
nagul
C'est vrai, mais pour certaines personnes, les vieilles habitudes ont la vie dure.
Alvin Row
'rmtrash' est une autre option.
Itachi
3
Deux autres solutions techniques n'ont pas encore été nommées:
libtrash : une bibliothèque dynamique qui peut être préchargée dans votre shell qui intercepte la suppression / suppression des appels système et déplace les fichiers vers un dossier de corbeille à la place (un peu comme un alias mais fonctionne pour n'importe quelle application une fois préchargée).
Un système de fichiers de version. Si vous supprimez (ou modifiez, ou copiez, ou ...) un fichier, vous pouvez simplement revenir à un ancien état. Cela pourrait être fait avec un système de fichiers FUSE et l'un de ses systèmes de fichiers de version .
Il y a ici une question plus vaste qui mérite d'être abordée. Les commandes shell ne sont pas bavardes (elles ne vérifient pas ce que vous voulez) et elles s'attendent à ce que vous sachiez ce que vous faites. Ceci est fondamental pour la façon dont ils sont conçus . C'est une fonctionnalité, pas un bug.
Certaines personnes se sentent macho lorsqu'elles utilisent de telles commandes, ce qui est assez idiot à mon avis, mais il est important de comprendre les dangers. Vous pouvez faire beaucoup de dégâts dans un terminal, même si vous n'êtes pas root. Je pense que vous vous en souciez probablement rm, mais comme vous avez dit "Pouvons-nous annuler les opérations effectuées dans le terminal", j'ai pensé que cela valait la peine d'être dit. La réponse générale est non, vous ne pouvez pas.
Le site Web d'origine a disparu. Le lien ci-dessus est vers les archives Internet.
Les sites sont dans un mélange d'anglais et d'allemand.
Comme indiqué ci-dessus, l'outil est conçu spécifiquement pour le système de fichiers ext2. Il est peu probable qu'il fonctionne sur un autre type de système de fichiers; surtout pas les autres que poste N .
Option 2: J'ai rsnapshot (rsync) en cours d'exécution sur ma machine qui crée des instantanés toutes les heures de mes dossiers sélectionnés. Il le fait progressivement toutes les heures, toutes les 2 heures ou tout ce que vous demandez à CRON de faire. Après une journée complète, il recycle ces instantanés en un instantané quotidien et après 7 jours dans une semaine, etc. Cela me permet de remonter le temps pendant environ un mois environ pour chaque heure! Il est assez bon avec l'espace disque car il crée des liens symboliques vers des fichiers qui n'ont jamais changé ...
Il existe des utilitaires non supprimés pour ext2, mais la plupart des autres systèmes de fichiers Linux sont bloqués à l'âge de pierre et n'ont pas de fonctionnalités d'utilisation avancées. Triste situation, considérant des disques gigantesques avec suffisamment d'espace pour ne plus jamais supprimer un fichier sont monnaie courante.
Vous êtes donc coincé avec trois options:
Effectuez des sauvegardes régulièrement, par exemple avec une commande comme:
Utilisez un outil de contrôle de version tel que gitpour tout votre travail. Bien que cela ne protège pas contre un fou rm -rqui tue le référentiel, il protège contre les problèmes réguliers car vous n'utiliserez git rmpas brut rm.
Soyez très prudent et ne font pas confiance trop rm -i, trash-cliet les amis, comme la plupart des données vous perdrez du shell que vous ne perdrez pas par hasard rm, mais par des tuyaux mal acheminés, les fichiers de sortie fautes d' orthographe, mal acheminés mvet d'autres choses, par exemple, des choses qui écrasera vos données, pas seulement les supprimer.
C'est assez hilarant d'appeler ext2 moderne. Les systèmes de fichiers plus récents utilisent des formats sur disque plus compliqués que ext2 / 3 et ont dû abandonner des emplacements faciles à trouver où vous pourriez trouver des fichiers à supprimer. Ils sont conçus pour les personnes qui effectuent des sauvegardes de leurs objets. BTW, j'utilise toujours mv et cp -i, car je ne veux normalement rien encombrer. Je tape normalement \ rm, car j'ai aussi rm alias rm -i, mais je ne veux pas répondre à sa question.
sont équivalents. le script gère plus de cas et ne modifie pas du tout votre système rmet c'est parce qu'il est placé dans le dossier bin local de l'utilisateur afin qu'il masque le rm du système et ne l'affecte pas ou ne le désactive pas
c'est une approche de repliement raffinée mais sans perdre aucune fonctionnalité
Ce serait bien si vous pouviez ajouter des explications sur ce que cela fait et comment cela s'applique à la question, peut-être ajouter un exemple, etc.
slhck
0
TestDisk peut restaurer les fichiers des systèmes de fichiers FAT, exFAT, NTFS et ext2 .
Pour moi (opensuse leap 42.2, NTFS pendrive) PhotoRec - également par les testdiskcréateurs - a fonctionné :) Cependant, il n'a pas récupéré les noms de fichiers.
PhotoRec est un logiciel de récupération de données de fichiers conçu pour récupérer des fichiers perdus, y compris des vidéos, des documents et des archives à partir de disques durs, de CD-ROM et d'images perdues (donc le nom de récupération de photos) de la mémoire de l'appareil photo numérique. PhotoRec ignore le système de fichiers et va après les données sous-jacentes, il fonctionnera donc même si le système de fichiers de votre support a été gravement endommagé ou reformaté.
Je l'ai installé à l'aide de référentiels standard dans openSUSE
Bienvenue sur Super User! Veuillez lire Comment recommander un logiciel pour obtenir les informations et suggestions minimales requises sur la façon de recommander un logiciel sur Super User. Pour que votre réponse reste utile même si le (s) lien (s) fourni (s) rompt, ces détails doivent être modifiés dans votre réponse.
rm
: Il dissocie un fichier de celui-ciinode
. La question: "Où vont les fichiers lorsque larm
commande est exécutée " -> unix.stackexchange.com/questions/10883/… pourrait également être une bonne lecture pour vous.Réponses:
Il n'y a pas d'annulation générale pour chaque opération dans le terminal. Si vous souhaitez récupérer un fichier après utilisation,
rm
vous devrez consulter le logiciel de récupération.Une option pour vous éviter de futures erreurs est de créer
alias
des commandes alternatives pour supprimer les fichiers. Ajoutez-les à votre~/.bashrc
et prenez l'habitude de les utiliser à la place derm
.Si vous utilisez
rmi
, vous serez invité à confirmer les suppressions futures. Essayez d'éviter de développer l'habitude d'appuyery
immédiatement après avoir émis unermi
commande, car cela irait à l'encontre du but.Vous pouvez également déplacer les fichiers supprimés par la
trsh
commande dans le terminal vers votre corbeille (sur KDE et Gnome):Si vous utilisez
trsh
, vous aurez une capacité "d'annulation de suppression" limitée. Attention à çapeut toujours entraîner une perte de données irrécupérable.
la source
rm
pourrm -i
que vous vous habituez au filet de sécurité qu'il vous donne. Ensuite, vous passez sur une autre machine, qui n'a pas cet alias ...rmi
->rm -i
. C'est vraiment une erreur de simplement entraver un programme existant en le replaçant sur lui.Il n'y a pas de corbeille pour la ligne de commande.
Vous pouvez essayer certains des divers utilitaires de suppression, mais rien ne garantit qu'ils fonctionneraient.
la source
Vous pouvez utiliser trash-cli si vous utilisez KDE lorsque vous exécutez une interface graphique. Il s'agit d'un utilitaire de ligne de commande pour supprimer / restaurer à l'aide des fonctions de corbeille de KDE.
la source
alias rm=trash
sorte que vos erreurs de ligne de commande typiques soient dotées de boutons d'annulation.alias rm=trash
c'est potentiellement dangereux, s'il y a une chance que vous utilisiez le système de quelqu'un d'autre un jour et oubliez (ou ssh). Beaucoup plus sûr de simplement s'habituer à écriretrash
au lieu derm
.Vous pouvez créer
rm
un alias pour latrash
commande (vous devrez d'trash
abord l' installer .) Ajoutez ceci à votre~/.bashrc
:C'est préférable
alias rm='mv --target-directory=$HOME/.Trash'
car ~ / .Trash n'est PAS le dossier de la corbeille pour gnome. Il est préférable à mon humble avis detrash
savoir où se trouve le dossier de la corbeille.btw j'aurais posté ceci dans un commentaire mais je n'ai pas assez de représentant.
la source
Deux autres solutions techniques n'ont pas encore été nommées:
la source
Il y a ici une question plus vaste qui mérite d'être abordée. Les commandes shell ne sont pas bavardes (elles ne vérifient pas ce que vous voulez) et elles s'attendent à ce que vous sachiez ce que vous faites. Ceci est fondamental pour la façon dont ils sont conçus . C'est une fonctionnalité, pas un bug.
Certaines personnes se sentent macho lorsqu'elles utilisent de telles commandes, ce qui est assez idiot à mon avis, mais il est important de comprendre les dangers. Vous pouvez faire beaucoup de dégâts dans un terminal, même si vous n'êtes pas root. Je pense que vous vous en souciez probablement
rm
, mais comme vous avez dit "Pouvons-nous annuler les opérations effectuées dans le terminal", j'ai pensé que cela valait la peine d'être dit. La réponse générale est non, vous ne pouvez pas.la source
Option 1: voir Annuler la suppression de fichiers Linux à partir d'un système de fichiers ext2 . Cette page pointe vers un programme, écrit par Sebastian Hetze de la société LunetIX, qui (comme le titre le suggère) rétablit les fichiers récemment supprimés d'un système de fichiers ext2. Exemple d'utilisation:
Avertissements:
Option 2: J'ai rsnapshot (rsync) en cours d'exécution sur ma machine qui crée des instantanés toutes les heures de mes dossiers sélectionnés. Il le fait progressivement toutes les heures, toutes les 2 heures ou tout ce que vous demandez à CRON de faire. Après une journée complète, il recycle ces instantanés en un instantané quotidien et après 7 jours dans une semaine, etc. Cela me permet de remonter le temps pendant environ un mois environ pour chaque heure! Il est assez bon avec l'espace disque car il crée des liens symboliques vers des fichiers qui n'ont jamais changé ...
la source
Récupérer en utilisant grep sur
/dev/partition
( Linux ou Unix Récupérer des fichiers supprimés - restaurer des fichiers ),Juste un essai.
la source
Il existe des utilitaires non supprimés pour ext2, mais la plupart des autres systèmes de fichiers Linux sont bloqués à l'âge de pierre et n'ont pas de fonctionnalités d'utilisation avancées. Triste situation, considérant des disques gigantesques avec suffisamment d'espace pour ne plus jamais supprimer un fichier sont monnaie courante.
Vous êtes donc coincé avec trois options:
Effectuez des sauvegardes régulièrement, par exemple avec une commande comme:
rsync -axvRP --backup --backupdir=/backup/incr/$(date -I) /home/ /backup/root/
Utilisez un outil de contrôle de version tel que
git
pour tout votre travail. Bien que cela ne protège pas contre un fourm -r
qui tue le référentiel, il protège contre les problèmes réguliers car vous n'utiliserezgit rm
pas brutrm
.Soyez très prudent et ne font pas confiance trop
rm -i
,trash-cli
et les amis, comme la plupart des données vous perdrez du shell que vous ne perdrez pas par hasardrm
, mais par des tuyaux mal acheminés, les fichiers de sortie fautes d' orthographe, mal acheminésmv
et d'autres choses, par exemple, des choses qui écrasera vos données, pas seulement les supprimer.Faites les trois pour une sécurité maximale.
la source
vérifiez ceci ... pourrait être utile http://artmees.github.io/rm/
supposez que vous l'avez fait
du terminal. récupérer ce fichier est un processus fastidieux et pas toujours réussi
à la place, si vous avez utilisé le script mentionné. vous n'avez pas à vous en préoccuper car
sont équivalents. le script gère plus de cas et ne modifie pas du tout votre système
rm
et c'est parce qu'il est placé dans le dossier bin local de l'utilisateur afin qu'il masque le rm du système et ne l'affecte pas ou ne le désactive pasc'est une approche de repliement raffinée mais sans perdre aucune fonctionnalité
la source
TestDisk peut restaurer les fichiers des systèmes de fichiers FAT, exFAT, NTFS et ext2 .
la source
Pour moi (opensuse leap 42.2, NTFS pendrive) PhotoRec - également par les
testdisk
créateurs - a fonctionné :) Cependant, il n'a pas récupéré les noms de fichiers.Je l'ai installé à l'aide de référentiels standard dans openSUSE
instruction
la source