Erstens: Verwenden Sie dieses Laufwerk jetzt nicht mehr . Es ist in Ordnung, es nur mit Lesezugriff erneut einzuhängen. Stellen Sie jedoch sicher, dass Sie keine weiteren Schreibvorgänge ausführen. Ja, Sie haben die Bilder gelöscht. Sie können zwar wiederhergestellt werden, aber je mehr Sie dieses Laufwerk weiterhin verwenden, desto geringer ist die Wahrscheinlichkeit, dass Sie etwas wiederherstellen müssen.
Ihr Befehl ausgeführt wird mv pic1.jpg pictures
, mv pic2.jpg pictures
usw. Jeder Aufruf mv
überschrieben haben die Datei zur Zeit benanntpictures
durch ein anderes Bild.
Das Verschieben einer Datei (innerhalb desselben Dateisystems) bedeutet, sie von dem Verzeichnis zu trennen, in dem sie enthalten ist, und sie unter dem neuen Namen an das Zielverzeichnis anzuhängen. Mit diesem Befehl wurden also keine Dateidaten geändert oder gelöscht, sondern nur die Verzeichniseinträge für die verschwundenen Bilder.
Sie können ein Tool ausführen, das den freien Speicher Ihres Dateisystems durchsucht und nach Dingen sucht, die wie JPEGs aussehen. Glücklicherweise beginnt jede JPEG-Datei mit einem erkennbaren Header. Werkzeuge, die nach gelöschten Inhalten suchen, werden als Schnitzwerkzeuge bezeichnet . Es gibt einige in Ubuntu, einschließlich recoverjpeg , foremost , testdisk , ... Wenn sich die Fotos auf einer separaten Home-Partition oder einem externen Laufwerk befinden, installieren Sie eines oder mehrere dieser Pakete und verweisen Sie sie auf die Partition mit den gelöschten Bildern.
Wenn sich die Fotos auf Ihrer Systemfestplatte befinden, müssen Sie die Verwendung Ihres Systems sofort beenden. Verwenden Sie einen anderen Computer, um eine Live-CD oder einen USB-Stick herunterzuladen und von dort zu booten. Alle Live-CDs, die Testdisk enthalten, sollten in die Rechnung passen, aber einige sind einfacher zu verwenden als andere. System Rescue CD ist eine gute Allzweck-System-Rettungs-CD. Ubuntu Rescue Remix ist für Ubuntu-Benutzer möglicherweise vertrauter.
Gewöhnen Sie sich zum späteren Nachschlagen an, es mv -i
sei denn, Sie möchten Dateien überschreiben. Möglicherweise haben Sie bereits einen Alias für mv
, dieser wird jedoch nur aktiviert, wenn Sie mv
direkt in die Befehlszeile eingeben, und nicht, wenn er mv
von einem Skript oder vom find
Befehl aufgerufen wird .
$ : >pictures
$ mv -i foo.jpg pictures
mv: overwrite `pictures'?
Wenn Sie /
nach einem Namen ein setzen, der der Name eines Verzeichnisses sein soll, wird eine Fehlermeldung angezeigt, wenn das Verzeichnis nicht vorhanden ist oder wenn es eine Datei mit diesem Namen gibt, die kein Verzeichnis ist.
$ : >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
Um die Fallstricke von zu vermeiden find
, können Sie stattdessen die Funktion zum rekursiven Durchlaufen von Verzeichnissen von bash verwenden. Sie müssen es zuerst mit dem Befehl einschalten shopt -s globstar
(Sie können diese Zeile zu Ihrer hinzufügen ~/.bashrc
. Dann:
mv **/*.jpg pictures/
(Beachten Sie, dass in bash **/
auch symbolische Links zu Verzeichnissen durchlaufen und dies nicht deaktiviert werden kann. Wenn Sie eine rekursive Durchquerung wünschen, die keine symbolischen Links zu Verzeichnissen durchläuft, verwenden Sie zsh oder find.)