Ich habe versucht, das selbst herauszufinden. Hier ist der Befehl, den ich im Terminal verwendet habe:
find . -name "*.jpg" -exec mv {} pictures \;
Ich habe zuerst kein Verzeichnis mit dem Namen pictures erstellt. Was passiert ist, ist eine Datei namens pictures.gif erstellt worden. Wurden die Dateien beim Verschieben überschrieben?
Was ist die Datei pictures.gif, die aufgrund dieses Befehls erstellt wurde?
Befinden sich die Dateien möglicherweise noch irgendwo auf dem Laufwerk?
command-line
find
jtnewhou
quelle
quelle
/
Sie ihn an! Immer! Dann kann es immer nur ein Verzeichnis sein.Antworten:
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 Aufrufmv
ü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ürmv
, dieser wird jedoch nur aktiviert, wenn Siemv
direkt in die Befehlszeile eingeben, und nicht, wenn ermv
von einem Skript oder vomfind
Befehl aufgerufen wird .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.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 einschaltenshopt -s globstar
(Sie können diese Zeile zu Ihrer hinzufügen~/.bashrc
. Dann:(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.)quelle
/
Afterpictures
in der zweiten Reihe von Beispielen weggelassen? Dh, sollte es nichtmv foo.jpg pictures/
(mit dem/
) in beidenmv
Befehlen sein?Ich fürchte, Sie haben gerade alle Ihre Bilder in dieser einzigen Datei verloren. Es ist möglich, einige Dateien mit forensischen Tools wie foremost wiederherzustellen. Die Erfolgsrate sinkt jedoch, je länger Sie das Medium (die Festplatte) verwenden. (Um genau zu sein, je länger die Partition gemountet ist .)
Wenn Sie das nächste Mal ein Verzeichnis meinen, fügen Sie einen Schrägstrich hinzu und fügen Sie die
-i
Option hinzu, nach einer Bestätigung zu fragen, falls eine Datei bereits vorhanden ist:quelle