Senior
Dokąd zapisuje się proces, jeśli plik został usunięty, ale deskryptor jest otwarty? Czy można zobaczyć zawartość?
sobes.tech AI
Odpowiedź od AI
Если файл удалён из файловой системы, но процесс всё ещё держит открытый дескриптор на этот файл, то процесс продолжит писать данные в inode этого файла. Файл физически не отображается в каталоге, но данные сохраняются на диске, пока дескриптор открыт.
Это связано с тем, что в Unix-подобных системах удаление файла (unlink) удаляет ссылку на файл из каталога, но сам файл удаляется только тогда, когда количество ссылок и открытых дескрипторов становится нулём.
Чтобы посмотреть содержимое такого "удалённого" файла, можно:
- Найти дескриптор процесса, который держит файл открытым, например, через
/proc/<pid>/fd/. - Перейти в каталог
/proc/<pid>/fd/и посмотреть символическую ссылку на дескриптор, например/proc/<pid>/fd/3. - Считать содержимое через этот дескриптор, например,
cat /proc/<pid>/fd/3.
Таким образом, даже если файл удалён из каталога, его содержимое доступно через открытый дескриптор до закрытия файла процессом.