Какая жесткая ссылка определяет фактическое местоположение файла?

277
Daniel Katz

В моем понимании файл, как я вижу его в проводнике, - это, по сути, жесткая ссылка на реальные данные. Когда я перемещаю это в другой каталог, данные также перемещаются в это место. Что произойдет с реальными данными, если я переместу вторую жесткую ссылку в другой каталог? Он будет сохранен в том месте, где находится одна из двух жестких ссылок?

1
https://en.wikipedia.org/wiki/Hard_link Mokubai 6 лет назад 0
Содержимое файла на диске - это просто блок данных. Каждая запись файловой системы, такая как записи в каталоге, это просто ссылка на эти данные. Когда вы перемещаете файл между каталогами, вы просто перемещаете ссылку на эти данные. Вы можете иметь несколько жестких ссылок на этот блок, но как только вы удалите все ссылки, данные фактически «не связаны» и, следовательно, удаляются. Mokubai 6 лет назад 0

1 ответ на вопрос

1
Daniel Katz

Думая об этом, я думаю, что это то, что происходит:

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

Точное местоположение зависит от ряда факторов:

Как и в ссылке, это зависит от: файловых систем (ext4, btrfs, NTFS ...), фрагментации, типа диска, физического повреждения, программ, которые пишут, atc ..

Когда мы сохраняем файл в Windows - фактическое расположение файла на жестком диске является случайным или детерминированным?

добро пожаловать в СУ! Пожалуйста, имейте в виду, чтобы включить краткую сводку ссылки, когда вы включаете одну (в случае, если ссылка умирает) Blaine 6 лет назад 0