如何使用 ln 而不是 cp 在 Linux 上恢复打开但已删除的文件?

Yan*_*ang 9 linux file-recovery

我有一个正在下载的文件(从一个很难重新下载的来源),但不小心从文件系统命名空间 (/tmp/blah) 中删除,我想恢复这个文件。

通常我可以cp /proc/$PID/fd/$FD /tmp/blah,但在这种情况下,这只会给我一个部分快照,因为文件仍在下载。此外,一旦下载完成,下载过程(例如 Chrome)将关闭 FD。

任何通过inode/创建硬链接恢复的方法?还有其他解决方案吗?如果它有任何区别,我主要关心的是 ext4。

Sti*_*oop 11

尝试使用 tail 不断复制文件:

tail -c +0 -f /proc/$pid/fd/$fd > filename
Run Code Online (Sandbox Code Playgroud)

当然,下载完成后,您必须手动(或其他一些外部方式)停止尾部进程。