Remove ads
структурная составляющая файла — описывающий его элемент каталога Из Википедии, свободной энциклопедии
Жёсткой ссылкой (англ. hard link) в UFS-совместимых файловых системах называется структурная составляющая файла — описывающий его элемент каталога.
Файл в UFS представляет собой структуру блоков данных на диске, имеющую уникальный индексный дескриптор (inode) и набор атрибутов (метаинформацию). Жёсткая ссылка связывает индексный дескриптор файла с каталогом и даёт ему имя.
У файла может быть несколько жёстких ссылок: в таком случае он будет фигурировать на диске одновременно в различных каталогах или под различными именами в одном каталоге. При редактировании файла через одну из ссылок на него, содержимое по другим ссылкам тоже изменится.
Количество жёстких ссылок файла сохраняется на уровне файловой системы в метаинформации. Файлы с нулевым количеством ссылок перестают существовать для системы и, со временем, будут перезаписаны физически. В файловых системах UNIX-подобных ОС и в NTFS при создании файла на него автоматически создаётся одна жёсткая ссылка (на то место файловой системы, в котором файл создаётся). Дополнительную ссылку в UNIX можно создать с помощью команды ln. Все ссылки одного файла равноправны и неотличимы друг от друга — нельзя сказать, что файл существует в таком-то каталоге, а в других местах есть лишь ссылки на него. Удаление ссылки приводит к удалению файла лишь в том случае, когда это была последняя ссылка, любая из созданных, то есть все остальные жёсткие ссылки на него уже удалены.
Большинство программ не различают жёсткие ссылки одного файла, даже системный вызов для удаления файла в UNIX называется unlink[англ.], так как он предназначен для удаления жёсткой ссылки файла.
В связи с тем, что жёсткие ссылки ссылаются на индексный дескриптор, уникальный в пределах дискового раздела, создание жёсткой ссылки на файл в каталоге другого раздела невозможно. Для преодоления этого ограничения используются мягкие ссылки.
При простом копировании файлов жёсткие ссылки разыменовываются, то есть каждая ссылка превращается в самостоятельный файл. Для преодоления этого ограничения в UNIX-подобных системах используется конвейер из команд find и cpio:
(в каталоге-источнике) find -depth -print0 | cpio -p -v -d --null <каталог назначения>
(Ключ -depth заставляет find выводить имена каталогов после их содержимого, благодаря чему команда cpio сможет последовательно воссоздать дерево файлов. Ключ -print0 сохраняет пробелы в именах файлов, меняя разделитель строк на символ NULL (код 0x0). Ключи cpio: -p — режим конвейера, -d — создание каталогов, -v — отображение хода работы, --null — указывает на то, что разделителем строк выступает нулевой символ.)
Жёсткие ссылки поддерживаются в файловой системе NTFS (начиная с Windows NT4[1]). Жёсткая ссылка может создаваться только в пределах одного логического раздела и только для файлов. В операционных системах Windows нет возможности создать жёсткую ссылку на каталог. Однако похожего эффекта можно добиться, используя точку соединения NTFS.
Команда для создания жёсткой ссылки в Windows:
fsutil hardlink create новая_ссылка источник
Пример:
fsutil hardlink create "C:\Distr\Installer-2.exe" "C:\Distr\Installer.exe"
Обратите внимание: существующее имя файла идёт вторым, а создаваемое — первым.
Также, начиная с Vista, в Windows появилась внутренняя команда mklink, позволяющая создавать жёсткие и мягкие ссылки, а также точки соединения. Команда для создания жёсткой ссылки на файл в операционной системе Windows 7:
mklink /h новая_ссылка источник
Пример:
mklink /h "C:\Distr\Installer-2.exe" "C:\Distr\Installer.exe"
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.