然后用下面命令查看deadbeef的所有链接,PID就是上面查出的PIDps -A |grep deadbeef
ls -l /proc/<PID>/fd/
以我上面的为例,倒数第二行可以看到打开的文件01 - Look Alive, Sunshine.mp3已经被删除,前面有个8,记住$ ls -l /proc/18671/fd/
total 0
lr-x------ 1 flow users 64 14.11.2012 12:01 0 -> pipe:[7802]
l-wx------ 1 flow users 64 14.11.2012 12:01 1 -> /home/flow/.xsession-errors
lr-x------ 1 flow users 64 14.11.2012 12:01 10 -> anon_inode:inotify
l-wx------ 1 flow users 64 14.11.2012 12:01 11 -> pipe:[1470906]
lrwx------ 1 flow users 64 14.11.2012 12:01 14 -> socket:[1470963]
l-wx------ 1 flow users 64 14.11.2012 12:01 2 -> /home/flow/.xsession-errors
lrwx------ 1 flow users 64 14.11.2012 12:01 3 -> socket:[1471794]
lrwx------ 1 flow users 64 14.11.2012 12:01 6 -> anon_inode:[eventfd]
lrwx------ 1 flow users 64 14.11.2012 12:01 7 -> socket:[1470862]
lr-x------ 1 flow users 64 14.11.2012 12:14 8 -> /home/flow/01 - Look Alive, Sunshine.mp3 (deleted)
lr-x------ 1 flow users 64 14.11.2012 12:01 9 -> pipe:[1470906]
cp /proc/18671/fd/8 /tmp/2.mp3
linux删除文件只是删除文件在扇区的索引,文件数据会保留(有人说只要此文件没有任何指向,会被自动被删除),如果有程序在索引删除前打开了文件,有一个打开的句柄(has an open handle),就能通过该句柄访问文件。cp /proc/<PID>/fd/<fdno> /tmp/recoveredfile
评论