Как восстановить содержимое удаленного файла, для которого еще доступен дескриптор

N="filepath" ; P=/proc/$(lsof +L1 | grep "$N" | awk '{print $2}')/fd ; ls -l $P | sed -rn "/$N/s/.*([0-9]+) ->.*/\1/p" | xargs -I_ cat $P/_ > "$N"


Данная команда выполняет следующие действия:
1. Создает переменную N, которая содержит путь к файлу, содержимое которого нужно восстановить.
2. Создает переменную P, которая содержит путь к директории с файловыми дескрипторами процесса, используя команду «lsof +L1» для получения списка открытых файловых дескрипторов и фильтруя его с помощью grep и awk для получения PID процесса.
3. Выводит список файловых дескрипторов в директории P с помощью команды «ls -l».
4. С помощью команды sed и регулярного выражения находит файловый дескриптор, соответствующий файлу с именем N, и извлекает его номер.
5. Использует команду xargs для выполнения команды cat с каждым найденным номером файлового дескриптора в директории P.
6. Результат вывода команды cat записывается в файл с именем N.

Команда полезна, если файл был случайно удален, но его дескриптор все еще доступен. Альтернативный способ восстановления файла может быть использование специализированных программ для восстановления данных или использование резервной копии файла, если таковая имеется.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *