Wie kann ich unter Linux einen Ordner aus einer Datei erstellen?

Wie kann ich unter Linux einen Ordner aus einer Datei erstellen?

Ich habe den folgenden Befehl ausgeführt, um alle EPUBs zu finden und sie in ein Verzeichnis zu verschieben:

find . -iname "*.epub" -exec mv {} /data/EPUB \;

Dadurch wurde eine Superdatei mit allen aneinandergereihten EPUBs erstellt. Gibt es eine Möglichkeit, sie wieder aufzuteilen? Gibt es einen Befehl, um die Superdatei in einen Ordner umzuwandeln?

Antwort1

Wenn Sie das Verzeichnis nicht zuerst erstellt haben, /data/EPUBhaben Sie effektiv jede Datei einzeln in eine Datei mit dem Namen umbenannt /data/EPUBund dabei jedes Mal die vorherige überschrieben.

Was Sie jetzt haben, ist keine „Superdatei“, sondern /data/EPUBdie letzte EPUB-Datei, die verschoben wurde. Alle anderen EPUB-Dateien sind verloren gegangen (da sie bei nachfolgenden Verschiebungen überschrieben wurden).

Es gibt keine direkte Möglichkeit, sie abzurufen.

Ich schlage vor, das Gerät sofort auszuhängen (wenn möglich) und keine weiteren Schreibvorgänge durchzuführen. Dann verwenden Sie ein Programm wieTestDiskum zu versuchen, die überschriebenen Dateien wiederherzustellen (auch detaillierte AnweisungenHier).

In Zukunft empfehle ich die Verwendung von „ mv -i, wodurch zum Überschreiben aufgefordert wird und so Fehler wie dieser erkannt werden.

Ich schlage außerdem vor, es sich zur Gewohnheit zu machen, nach Verzeichnisnamen ein Ende zu setzen /, wodurch solche Fehler ebenfalls abgefangen werden, indem ein Fehler ausgegeben wird, wenn das Verzeichnis nicht existiert (anstatt davon auszugehen, dass es sich um eine Datei handelt), z. B.:

find . -iname "*.epub" -exec mv -i {} /data/EPUB/ \;

verwandte Informationen