11 августа 2018 г.

Что такое «жесткая ссылка» в файловой системе NTFS

Для понимания того, что такое «жесткая ссылка», вкратце вспомним о том, как организовано хранение файлов. Жесткий диск (или флешка) разбивается на небольшие блоки, называемые «кластер». Каждый кластер имеет свой номер. В самом начале диска создается таблица файлов. В этой таблице хранятся имена файлов, разная полезная информация (дата создания файла, его атрибуты) и номера кластеров, в которых уже и хранятся непосредственно данные. Разные файловые системы (FAT, FAT32, exFAT, NTFS, HPFS, UDF... ), собственно, отличаются форматом этой таблицы и способами работы с ней.

При поиске файла, переименовании, перемещении (в пределах одного диска), удалении файлов используется только таблица — сами данные остаются не тронутыми.



Что же такое «жесткая ссылка» NTFS и чем она отличается от просто ссылок?
Ссылки, которые мы видим в Windows характерной стрелочкой, на самом деле просто файлы, в которых хранится положение другого файла, куда эта ссылка и  указывает. Плюс таких ссылок в том, что они могут использоваться с любой файловой системой. На этом плюсы заканчиваются и начинаются минусы: каждый из этих файлов живет своей жизнью и может быть перемещен, переименован, удален независимо от другого.

«Жесткая ссылка» — это одна из функций файловой системы NTFS и представляет собой, по сути, еще одну запись в таблице файлов, указывающую на кластеры, уже занятые другим файлом. Таких записей может быть много, и все они могут иметь разные имена. С точки зрения любого приложения это просто разные файлы. В чем минусы: жесткие ссылки могут быть только в пределах одного логического диска и только в файловой системе NTFS*. Разные версии FAT, которые обычно используются на флешках, их не поддерживают. Ничто не мешает отформатировать флешку в NTFS, но тогда она не будет распознана смартфонами, фотоаппаратами, телевизорами и т. д.

В чем плюсы
- Сколько бы имен в таблице ни ссылалось на одни данные, их размер останется один. Возможна даже ситуация, когда «несколько» файлов в сумме имеют больший размер, чем объем диска.
- С точки зрения программ, ничего не знающих о жестких ссылках, любое имя файла является обычным полноценным файлом. Его можно открывать, читать, редактировать и так далее. Если потом открыть другое имя этого файла, можно даже другой программой, все изменения будут на месте.
- При удалении такого файла фактически удаляется только имя из таблицы файлов. И окончательно файл удаляется только после удаления ВСЕХ ссылающихся на него записей.

Как это можно использовать
- Можно иметь несколько «слепков» данных, в которых дополнительное место занимают только измененные данные. Этот трюк использует программа ZCopy.
- Можно иметь несколько видов классификации одних и тех же файлов. Например, один и тот же файл-фотографию «Дети на фоне гор» можно хранить в трех разных папках: «Горы», «Дети», «2018\июль\15». При этом с точки зрения программ просмотра фоток (ЛЮБЫХ!) это будут разные файлы с одним и тем же содержанием, но место на диске будет занято как одним файлом. В ограниченном виде (только по дате создания) это используется программой MediaMove.


* Жесткие ссылки поддерживаются также другими файловыми системами, но эти файловые системы, в свою очередь, не поддерживаются Windows, и нам не интересны.

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.