Назад к вопросам
ОТП Банк
Senior
5
Куда пишет процесс, если файл удалён, но дескриптор открыт? Можно ли посмотреть содержимое?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Если файл удалён из файловой системы, но процесс всё ещё держит открытый дескриптор на этот файл, то процесс продолжит писать данные в inode этого файла. Файл физически не отображается в каталоге, но данные сохраняются на диске, пока дескриптор открыт.
Это связано с тем, что в Unix-подобных системах удаление файла (unlink) удаляет ссылку на файл из каталога, но сам файл удаляется только тогда, когда количество ссылок и открытых дескрипторов становится нулём.
Чтобы посмотреть содержимое такого "удалённого" файла, можно:
- Найти дескриптор процесса, который держит файл открытым, например, через
/proc/<pid>/fd/. - Перейти в каталог
/proc/<pid>/fd/и посмотреть символическую ссылку на дескриптор, например/proc/<pid>/fd/3. - Считать содержимое через этот дескриптор, например,
cat /proc/<pid>/fd/3.
Таким образом, даже если файл удалён из каталога, его содержимое доступно через открытый дескриптор до закрытия файла процессом.