Жёсткая ссылка
Жёсткая ссылка (Хардлинк) — ситуация, когда человека ссылают в ГУЛАГ без права переписки дополнительное имя, указывающее непосредственно на тот же объект файловой системы, что и оригинальный файл. На уровне операционной системы никак не отличается от оригинального имени файла.
Описание[править]
Появилось такое понятие в Unix. В этих системах имеется концепция inode (индексный дескриптор), который позволяет отделить метаданные файла и его содержимое от имени, под которым файл записан в каталоге. Таким образом один и тот же физический файл вполне может иметь несколько мощных жёстких ссылок. Системный вызов link(), реализующий создание жёсткой ссылки, присутствует в стандарте POSIX и является одним из старейших интерфейсов Unix API.
В файловых системах типа Unix каждый файл представлен структурой данных inode. Имена файлов хранятся отдельно в записях каталога. Каждая запись каталога представляет собой пару из имени и номера inode. Таким образом, несколько записей каталога могут ссылаться на один и тот же номер inode.
В каждом inode хранится счётчик ссылок. Он показывает, сколько записей каталога в данный момент ссылаются на данный inode. При создании файла счётчик устанавливается в 1. При добавлении жёсткой ссылки он увеличивается на 1. При удалении имени файла счётчик уменьшается на 1. Когда счётчик достигает нуля и нет открытых файловых дескрипторов, указывающих на inode, файл помечается как удалённый и может в дальнейшем оказаться сокрушён и с физического носителя.
Удаление того файла, который был создан первым, не приводит к потере данных, пока существует хотя бы одна другая ссылка.
Всирание таковой ссылки производится посредством команды ln.
Однако заряжать такие ссылки можно не всегда. Жёсткая ссылка возможна только в пределах одной файловой системы, так как только в её рамках уникальны номера inode. Попытка создать жёсткую ссылку через границу раздела завершится ошибкой EXDEV. В большинстве систем создание жёстких ссылок на каталоги запрещено для обычных пользователей, чтобы случайно не появилось бесконечного цикла. В общем применять систему надо с пониманием того, как.