Сохранить видео, которое играет в 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)
1 ответ
Как @ridgy так услужливо указал в комментариях:
Пока файл используется, он не будет действительно удален, а будет удален из каталога. Индод файла все еще используется. Вы можете найти номер инода, выполнив
lsof | grep vlc
; это покажет файл без имени и сообщение (удалено) вместо этого. Номер инода - это номер перед этим. Затем вы можете связать файл с каталогом с помощьюln <inode#> <filename>
,
И позже:
Индекс 45 (число перед путем к файлу). Но я только что понял, что ln не работает на inode (не смог заставить его работать..). Но так как вы видите, что файл используется vlc, filedescriptor # 31 (см. 31r перед REG), вы можете сделать
cat /proc/2671/fd/31 > file_to_save
, который скопирует содержимое в новый файл. 2671 - это процесс № vlc (число после vlc).
И, действительно, работает
cat /proc/2671/fd/31 > file_to_save
схватил файл и сохранил его на моем жестком диске. Спасибо!