Premièrement: arrêtez d'utiliser ce lecteur maintenant . Il est correct de le remonter en lecture seule, assurez-vous simplement de ne plus écrire. Oui, vous avez supprimé les photos. Ils peuvent être récupérables, mais plus vous continuez à utiliser ce lecteur, moins vous avez de chances de récupérer quoi que ce soit.
Votre commande a été exécutée mv pic1.jpg pictures
, mv pic2.jpg pictures
etc. Chaque invocation de mv
écrase le fichier actuellement nommé pictures
par une autre image.
Déplacer un fichier (dans le même système de fichiers) signifie le détacher du répertoire qui le contient et le joindre au répertoire cible sous le nouveau nom. Aucune donnée de fichier n'a donc été modifiée ou supprimée par cette commande, seules les entrées de répertoire des images qui ont disparu.
Vous pouvez exécuter un outil qui parcourt l'espace libre de votre système de fichiers et recherche des éléments qui ressemblent à des jpeg. Heureusement, chaque fichier jpeg commence par un en-tête reconnaissable. Les outils qui recherchent le contenu supprimé sont appelés outils de sculpture . Il y en a quelques-uns dans Ubuntu, notamment recoverjpeg , avant tout , testdisk ,… Si les photos sont sur une partition domestique séparée ou sur un disque externe, installez un ou plusieurs de ces packages et dirigez-les vers la partition avec les images supprimées.
Si les photos sont sur votre disque système, vous devez cesser immédiatement d'utiliser votre système. Utilisez un autre ordinateur pour télécharger un CD live ou USB et démarrer à partir de là. Tous les CD live qui incluent testdisk devraient convenir, mais certains sont plus faciles à utiliser que d'autres. System Rescue CD est un bon CD de secours système à usage général. Ubuntu Rescue Remix peut être plus familier pour un utilisateur d'Ubuntu.
Pour référence future, prenez l'habitude d'utiliser, mv -i
sauf si vous visez à remplacer les fichiers. Vous avez peut-être déjà un alias pour mv
, mais cela ne se déclenche que lorsque vous tapez mv
directement sur la ligne de commande, pas lorsqu'il mv
est invoqué par un script ou par la find
commande.
$ : >pictures
$ mv -i foo.jpg pictures
mv: overwrite `pictures'?
De plus, si vous mettez un /
après un nom qui est censé être le nom d'un répertoire, vous obtiendrez une erreur si le répertoire n'existe pas, ou s'il existe un fichier de ce nom qui n'est pas un répertoire.
$ : >pictures
$ mv foo.jpg pictures/
mv: cannot move `foo.jpg' to `pictures/': Not a directory
$ rm pictures
$ mv foo.jpg pictures/
mv: cannot move `foo.jpg' to `pictures/': Not a directory
Pour éviter les pièges de find
, vous pouvez utiliser à la place la fonction de traversée de répertoire récursive de bash. Vous devez d'abord l'activer avec la commande shopt -s globstar
(vous pouvez ajouter cette ligne à votre ~/.bashrc
. Ensuite:
mv **/*.jpg pictures/
(Notez que dans bash, **/
traverse également les liens symboliques vers les répertoires, et il n'y a aucun moyen de désactiver cela. Si vous voulez une traversée récursive qui ne regarde pas les liens symboliques vers les répertoires, utilisez zsh ou find.)