恢复当前正在写入的已删除文件

dan*_*son 7 linux filesystems data-recovery open-files deleted-files

我开始下载一个大文件,不久前不小心删除了它。我知道如何通过cping获取其当前内容,/proc/<pid>/fd/<fd>但由于下载仍在进行中,因此在我将其复制到其他地方时它会不完整。

我可以在下载完成时以某种方式挽救文件但在下载器关闭文件之前我会永远丢失它吗?

Ric*_*chm 10

tail在跟随模式下使用应该可以让你做你想做的事。

tail -n +0 -f /proc/<pid>/fd/<fd> > abc.deleted
Run Code Online (Sandbox Code Playgroud)

我刚刚做了一个快速测试,它似乎在这里工作。您没有提及您的文件是否是二进制文件。我主要担心的是它可能不会从文件的开头复制,但 -n +0 参数即使对于二进制文件也应该这样做。

tail 命令可能不会在下载结束时终止,因此您需要自己终止它。