ファイルを指す開いたファイル記述子がある場合は、次のようcp
に再インポートできます。
# Open for reading
exec 3< file
# Delete
rm file
# Bring it back
cp /proc/self/fd/3 file
このソリューションは小さなファイルには問題ありませんが、大きなファイル(たとえば5GiB以上)では非常に遅くなります。それでは、コンテンツをコピーせずに再インポートする方法があるかどうか疑問に思います。つまり、ディスクリプタが閉じていないとデータに触れることはできませんが、なぜファイル名をデータのあるメモリ領域に関連付けることはできませんか?
これについて私に教えてください。 Hackyコマンドラインソリューション、プラットフォーム/ファイルシステムに依存するC APIなどすべてを歓迎します。ただ知りたかったです。可能であれば何らかの方法でどこかで、そしてそうでない場合、知りたいなぜ。
lsof
インターネット検索はまったく役に立ちませんでしたが、私が見つけることができるのは、ファイルの使用方法と回復方法に関するコピーされた記事だけでしたcp
。