Was passiert, wenn Sie eine Datei löschen, während sie von einem Dateisystem (ext4) zu einem anderen (NTFS) verschoben wurde?

369
Arslan Axton

das nervt mich seit gestern. Ich habe GNOME-Dateien (Nautilus) verwendet, um eine Videodatei aus dem Ordner "Downloads" auf ein NTFS-Laufwerk zu verschieben. Nachdem ich nun die Datei ausgeschnitten und eingefügt hatte, erschien sie sofort im Zielverzeichnis (Separates NTFS-Dateisystem mit ntfs-3g auf derselben Festplatte). Ich weiß, wenn Sie Dateien von einem Dateisystem in ein anderes verschieben, kopiert und entfernt sie die Datei (korrigieren Sie mich, wenn ich falsch liege). Aber ich 'verschiebe + lösche' die Datei in Eile von der Quelle und entdeckte kurz darauf, dass der Dateimanager war Die Datei wird immer noch in das NTFS-Dateisystem verschoben, auch nachdem ich die Datei aus der Quelle gelöscht habe und sie verschwunden ist. Nachdem der bewegte Balken 100% erreicht hatte, gab es einen Fehler . Aber ich habe das Ziel überprüft und die Datei wurde immer noch zum Ziel verschoben und es wurde einwandfrei abgespielt.

Also, was ist hier wirklich passiert? Funktionieren die Dateioperationen unter Linux anschließend, um den Verschiebevorgang nicht zu unterbrechen? Oder die Datei, die an mein Ziel verschoben wurde, wäre beschädigt? oder war der Fehler auf den letzten Kopiervorgang zurückzuführen, während die Datei verschoben wurde, weil der Verschiebevorgang die Datei trotzdem gelöscht hätte?

0

2 Antworten auf die Frage

2
Daniel B

Unter Linux können Sie geöffnete Dateien in den meisten Fällen löschen. Dadurch verschwindet die Datei aus den Verzeichnislisten. Der von der Datei belegte Speicherplatz wird jedoch erst freigegeben, wenn die Datei nicht mehr verwendet wird.

Was in Ihrem Fall fehlgeschlagen ist, war nur der letzte Schritt eines Verschiebevorgangs: Entfernen der Quelldatei / des Quellverzeichnisses.

1
grawity

Beim Löschen einer Datei werden die Daten (Inhalte) nicht gelöscht. Es werden nur die Metadaten entfernt, aus denen hervorgeht, dass die Datei vorhanden ist. Der entsprechende Speicherplatz wird als "frei für spätere Verwendung" markiert.

Noch wichtiger ist jedoch, dass das Betriebssystem die Metadaten so lange aufbewahrt, wie es benötigt wird. Selbst wenn Sie die Verknüpfung der Datei von ihrem Verzeichnis (oder von allen Verzeichnissen, wenn mehrere Hardlinks vorhanden waren) aufheben, löscht das Betriebssystem die eigentliche Datei nicht, solange mindestens ein Prozess sie geöffnet hält. Die Datei ist also immer noch vorhanden - während des restlichen Kopiervorgangs nur namenlos (belegt jedoch immer noch Platz).

Ich habe "Kopiervorgang" gesagt, da Computer keine Daten physisch zwischen den Datenträgern verschieben können. Zuerst wird die Datei an das Ziel kopiert und anschließend wird die Originaldatei gelöscht. Aus diesem Grund haben Sie die Fehlermeldung erhalten: Ihr Dateimanager verwendet zwei separate Vorgänge (Kopieren und Löschen). Die Kopie war erfolgreich, aber das Löschen ist fehlgeschlagen (weil Sie sie bereits gelöscht hatten).