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

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

das nervt mich seit gestern. Ich habe GNOME Files (Nautilus) verwendet, um eine Videodatei aus dem Ordner „Downloads“ auf ein NTFS-Laufwerk zu verschieben. Als ich die Datei ausgeschnitten und eingefügt habe, erschien sie sofort am Zielort (Separates NTFS-Dateisystem, mit ntfs-3g auf derselben Festplatte). Ich weiß, dass beim Verschieben von Dateien von einem Dateisystem in ein anderes die Datei im Wesentlichen kopiert und dann entfernt wird (korrigieren Sie mich, wenn ich falsch liege). Aber ich habe die Datei in Eile mit „Umschalt+Entf“ aus der Quelle entfernt und Augenblicke später festgestellt, dass der Dateimanager die Datei immer noch in das NTFS-Dateisystem verschoben hat, selbst nachdem ich die Datei aus der Quelle gelöscht hatte und sie verschwunden war. Nachdem der Bewegungsbalken 100 % erreicht hatte, erhielt ich eineFehler. Aber ich habe das Ziel geprüft und die Datei wurde trotzdem an das Ziel verschoben und die Wiedergabe war problemlos.

Was ist hier also wirklich passiert? Funktionieren die Dateioperationen unter Linux anschließend, sodass der Verschiebungsvorgang nicht unterbrochen wird? Oder ist die Datei, die an mein Ziel verschoben wurde, beschädigt? Oder lag der Fehler am letzten Kopiervorgang während der Verschiebung der Datei, da die Datei durch den Verschiebungsvorgang ohnehin gelöscht worden wäre?

Antwort1

Beim Löschen einer Datei werden deren Daten (Inhalte) nicht bereinigt – es werden lediglich die Metadaten entfernt, die angeben, dass die Datei vorhanden ist, und der entsprechende Speicherplatz wird als „frei für die spätere Verwendung“ markiert.

Aber was noch wichtiger ist: Das Betriebssystem wirdhaltenbesagte Metadaten so lange wie nötig aufbewahren. Selbst wenn Sie die Verknüpfung der Datei mit ihrem Verzeichnis (oder mit allen Verzeichnissen, wenn sie mehrere Hardlinks hatte) aufheben, löscht das Betriebssystem die eigentliche Datei nicht, solange mindestens ein Prozess sie geöffnet hält. Die Datei ist also während des restlichen Kopiervorgangs immer noch da – nur ohne Namen (belegt aber immer noch ihren Platz).

ICHtatsagen wir "Kopiervorgang", weil Computer Daten nicht physisch zwischen Festplatten verschieben können – zuerst wird die Datei auf das Ziel kopiert,Danndie Originaldatei wird gelöscht. Das ist eigentlich der Grund, warum Sie die Fehlermeldung erhalten haben: Ihr Dateimanager verwendet zwei separate Operationen (Kopieren und Löschen); das Kopieren war erfolgreich, aber das Löschen schlug fehl (weil Siebereitslöschte es).

Antwort2

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.

In Ihrem Fall ist nur der letzte Schritt einer Verschiebeoperation fehlgeschlagen: Das Entfernen der Quelldatei/des Quellverzeichnisses.

verwandte Informationen