Як можна відновити файл, який був видалений, але процес все ще відкритий?
Повідомлення в блозі "Відновлення файлів з /proc
" пояснює, як це зробити в Linux:
- Використовуйте
lsof
(наприклад,lsof -c name
), щоб знайти всі файли, відкриті в даний час для даного процесу (ім'я якого починається зname
). З виводу ви дізнаєтесь процесpid
і дескриптор файлу (fd
) потрібного файлу. - Використовуйте
cp /proc/<pid>/fd/<fd>
/ tmp / resta-file`, щоб зробити копію.
Перший крок також працює один на один і в OS X. Однак крок 2 видається складнішим. Чи є схожа функція в OS X?
(Я спробував, /dev/fd
але в моєму випадку він не містив PID / FD мого процесу / файлу.)