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