有没有办法在仍在使用时恢复已删除的文件?
答案1
至少在 Linux 上,您可以访问进程仍然打开的所有文件,位于/proc/${pid}/fd
:
$ echo Test > removeme
$ sleep 1200 < removeme &
[1] 21954
$ rm removeme
$ ls -l /proc/21954/fd
total 0
lr-x------. 1 skitt skitt 64 Aug 13 17:14 0 -> '/home/skitt/tmp/removeme (deleted)'
lrwx------. 1 skitt skitt 64 Aug 13 17:14 1 -> /dev/pts/7
lrwx------. 1 skitt skitt 64 Aug 13 17:14 2 -> /dev/pts/7
$ cat /proc/21954/fd/0
Test
您可以cp
通过相应的文件来恢复它。