在Linux中,当一个文件被删除,但仍有一个或多个进程持有该文件的打开句柄时,该文件的内容实际上并没有立即从磁盘上消失。操作系统会延迟释放文件占用的空间,直到所有持有该文件的文件描述符(file descriptor)都关闭为止。
若要恢复这样的文件,您可以尝试以下步骤:
首先,找到锁住文件的进程。可以使用 lsof 命令来获得已删除但依然打开的文件列表:lsof l grep -i delete l grep speed
在输出结果中,找到相关的进程数字PID。
一旦找到PID,您可以从 /proc 系统中找到该文件描述符指向的实际文件。进程的文件描述符和它们所指向的文件可以在 /proc/PID/fd/ 目录找到,其中 PID 是进程的ID。
cd cp /proc/PID/fd/
然后执行ll
找到删除文件的文件描述符数值,假设是2
恢复文件的内容,可以通过将该文件描述符指向的内容拷贝到一个新文件来完成。用命令如下:
cp /proc/PID/fd/2 /desired/new/path/recovered_file
在这里,PID 代表进程ID,/desired/new/path/recovered_file 是您希望恢复的文件的新位置和名称。
请注意,这种恢复方法只适用于文件删除之后,至少还有一个文件描述符是打开状态的情况。
如果相关进程已经关闭了所有的文件描述符或者已经终止,文件内容就有可能会被彻底删除,这种情况下文件就无法通过这种方式恢复了。
在这种情况下,您可能需要考虑使用专门的文件恢复工具来尝试恢复删除的文件。
网友回复
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?