削除したファイルの内容をコピーせずに復元する

削除したファイルの内容をコピーせずに復元する

ファイルを指すオープン ファイル記述子がある限り、cp次のようにしてそれを戻すことができます。

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

このソリューションは、小さなファイルには適していますが、大きなファイル (5GiB を超えるファイルなど) では非常に遅くなります。そこで、コンテンツをコピーせずに元に戻す方法はないでしょうか。つまり、記述子が閉じられない限り、データはそのままそこに残っているので、ファイル名をデータが存在するメモリ領域にリンクできないのはなぜでしょうか。

これについて教えてください。ハックっぽいコマンドラインソリューション、プラットフォーム/ファイルシステムに依存するC APIなど、何でも歓迎です。私はただ知りたいだけです。もしこれが可能ならばどこかで、そしてそうでなければ、 私は知りたいですなぜ

lsofGoogle 検索ではまったく役に立ちませんでした。見つけたのは、とを使用してファイルを復元する方法に関するコピー記事だけでしたcp

関連情報