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

Теперь я знаю, как работает удаление файлов в Linux. В ext2 он помечает "неиспользуемый", а в ext3 не только отмечает "неиспользуемый", но и меняет размер, блокирует указатели на ноль.

Но мне интересно, когда я создаю жесткую ссылку на файл, а затем удаляю исходный файл, индексный дескриптор будет помечен как «неиспользуемый»? Или это будет происходить до тех пор, пока не будут удалены все жесткие ссылки?

Благодарю.


person Cedric Vincent    schedule 02.05.2017    source источник


Ответы (1)


i-узлы содержат количество ссылок (отображается в выводе ls -l). Каждая жесткая ссылка увеличивает это значение. Отмена связи (удаление ссылки, будь то ссылка на исходное имя файла->inode или какая-либо жесткая ссылка, добавленная позже, что является единственным, что могут запросить пользователи) уменьшает счетчик. Файл не будет удален до тех пор, пока счетчик не достигнет 0 и не останется дескрипторов открытых файлов, указывающих на этот файл (что аналогичным образом отслеживается счетчиком ссылок в ядре).

person ninjalj    schedule 02.05.2017