Eine gelöschte Datei wiederherstellen, ohne ihren Inhalt zu kopieren

Eine gelöschte Datei wiederherstellen, ohne ihren Inhalt zu kopieren

Solange ein geöffneter Dateideskriptor vorhanden ist, der auf eine Datei verweist, kann ich sie folgendermaßen zurückholen cp:

# Open for reading
exec 3< file
# Delete
rm file
# Bring it back
cp /proc/self/fd/3 file

Diese Lösung ist bei kleinen Dateien in Ordnung, aber bei größeren (> 5 GiB) ist sie sehr langsam. Ich frage mich also, ob es eine Möglichkeit gibt, sie wiederherzustellen, ohne den Inhalt zu kopieren. Ich meine, die Daten liegen dort unberührt, sofern der Deskriptor nicht geschlossen wird. Warum sollte es also nicht möglich sein, einen Dateinamen mit dem Speicherbereich zu verknüpfen, in dem sich die Daten befinden?

Bitte klären Sie mich darüber auf. Eine hackige Befehlszeilenlösung, eine plattform-/dateisystemabhängige C-API usw., alles ist willkommen; ich möchte nur wissenwenn das möglich istirgendwie irgendwo, undwenn nicht, Ich möchte es wissenWarum.

Googeln hat überhaupt nicht geholfen. Ich konnte nur Kopie-von-Kopie-Artikel darüber finden, wie man Dateien mit lsofund wiederherstellt cp.

verwandte Informationen