Сохраните видео, которое играет в vlc

Странный вопрос, но вот контекст. Я играл видео в VLC на Ubuntu 16.04. Я случайно удалил видео, в то время как я все еще играл его. Я могу все еще переместиться в любую точку на видеопотоке в VLC и играть его, но физический файл удален из диска.

Существует ли способ восстановить этот кэш? У меня все еще есть открытый VLC.

Редактирование на комментарии:

lsof | grep vlc | grep dvgrab

возвраты

vlc       2671           peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2674      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2676      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2677      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2686      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2689      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2692      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2694      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2695      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2696      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2697      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2698      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2699      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2700      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
6
задан 1 March 2017 в 06:43

1 ответ

Как @ridgy так услужливо указанный в комментариях:

, пока файл используется, он не будет действительно удален, но удален из каталога. inode файла все еще используется. Можно найти inode число путем издания lsof | grep vlc; это покажет файл без имени и сообщения (удаленного) вместо этого. inode число является числом перед этим. Можно затем повторно связать файл с каталогом с ln <inode#> <filename>.

И позже:

inode равняется 45 (число перед путем к файлу). Но я просто понял, что ln не работает над inodes (не мог заставить это работать..). Но поскольку Вы видите, что файл используется vlc, filedescriptor № 31 (см. 31r перед REG), Вы могли сделать cat /proc/2671/fd/31 > file_to_save, который скопирует содержание в новый файл. 2671 процесс # vlc (число после vlc).

И, действительно, работая

 cat /proc/2671/fd/31 > file_to_save

захватил файл и сохранил его к моему жесткому диску.Спасибо!

1
ответ дан 23 November 2019 в 08:12

Другие вопросы по тегам:

Похожие вопросы: