Жёсткая ссылка

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Жёсткой ссылкой (англ. hard link) в UFS-совместимых файловых системах называется структурная составляющая файла — описывающий его элемент каталога.

Файл в UFS представляет собой структуру блоков данных на диске, имеющую уникальный индексный дескриптор (или i-node) и набор атрибутов (метаинформацию). Жёсткая ссылка связывает индексный дескриптор файла с каталогом и дает ему имя.

Свойства[править | править вики-текст]

У файла может быть несколько жёстких ссылок: в таком случае он будет фигурировать на диске одновременно в различных каталогах и/или под различными именами.

Количество жёстких ссылок файла сохраняется на уровне файловой системы в метаинформации. Файлы с нулевым количеством ссылок перестают существовать для системы и, со временем, будут перезаписаны физически. В файловых системах unix-подобных ОС и NTFS при создании файла на него автоматически создаётся одна жёсткая ссылка (на то место файловой системы, в котором файл создаётся). Дополнительную ссылку можно создать с помощью команды ln. Все ссылки одного файла равноправны и неотличимы друг от друга — нельзя сказать, что файл существует в таком-то каталоге, а в других местах есть лишь их копии. Удаление любой из ссылок приводит к удалению файла лишь в том случае, когда удалены все остальные жёсткие ссылки на него.

Большинство программ не различают жёсткие ссылки одного файла, даже системный вызов для удаления файла в UNIX называется unlink (англ.)русск., так как он предназначен для удаления жёсткой ссылки файла.

В связи с тем, что жёсткие ссылки ссылаются на индексный дескриптор, уникальный в пределах дискового раздела, создание жёсткой ссылки на файл в каталоге другого раздела невозможно. Для преодоления этого ограничения используются символьные ссылки.

Другие файловые системы[править | править вики-текст]

В файловой системе NTFS (начиная с Windows NT4[1]) поддерживаются жёсткие ссылки. Жёсткая ссылка может создаваться только в пределах одного логического раздела и только для файлов. В операционных системах Windows нет возможности создать жесткую ссылку на директорию. Однако похожего эффекта можно добиться, используя NTFS junction point.

Команда для создания жёсткой ссылки в Windows:

fsutil hardlink create новая_ссылка источник

Пример:

fsutil hardlink create "C:\Distr\Installer-2.exe" "C:\Distr\Installer.exe"

обратите внимание — существующее имя файла идет вторым! А создаваемое — первым.

Также в Windows Vista появилась новая команда mklink. Команда для создания жёсткой ссылки на файл в операционной системе Windows 7:

mklink /h новая_ссылка источник

Пример:

mklink /h "C:\Distr\Installer-2.exe" "C:\Distr\Installer.exe"

Утилиты для работы с жёсткими ссылками в Windows[править | править вики-текст]

  • NTFS-Link[2] — дополнение к оболочке Windows, позволяющее создавать жёсткие и символьные ссылки на томах NTFS. Существующие символьные ссылки помечаются в Проводнике маленькой дополнительной иконкой. Имеется исходный код, написан на языке Pascal.
  • Link Shell Extension[3] - ещё одно дополнение к оболочке Windows. Последняя версия проверена и работает в Windows Vista/7. Существующие жесткие и символьные ссылки помечаются в Проводнике маленькой дополнительной иконкой. Файлы и каталоги с существующими ссылками имеют дополнительную закладку в "Свойствах" со списком всех жестких ссылок и целевым местом символической ссылки.
  • NTFS Links[4] — плагин для файлового менеджера Total Commander, позволяющий создавать жёсткие и символьные ссылки на томах NTFS из Total Commander.
  • CreateHardLink[5] — ещё один плагин для Total Commander, позволяющий создавать жёсткие ссылки на томах NTFS из этой программы.
  • NTLinks[6] — контекстный плагин Total Commander для просмотра информации о NTFS-ссылках.
  • FAR Manager - файловый менеджер позволяющий работать ссылками на NTFS-разделах (создавать, просматривать, удалять жёсткие и символьные ссылки с помощью команды  Alt  +  F6 )
  • Duplicate & Same Files Searcher[7] - утилита для Windows, которая позволяет искать на жёстком диске одинаковые файлы и заменять их жёсткими ссылками NTFS. Утилита также находит существующие на диске жёсткие ссылки на один и тот же файл. Работает в Windows 2000/XP/Vista/7.
  • FINDDUPE[8] - простая утилита командной строки для Windows, позволяющая искать файлы и заменять их жёсткими ссылками NTFS.
  • Duplicate File Hard Linker[9] - ещё одна простая утилита командной строки для Windows, позволяющая искать файлы и заменять их жёсткими ссылками NTFS.
  • KillCopy - утилита для ускоренного копирования в Windows, позволяет вместо копирования создать жёсткую ссылку.
  • Junction[10] - утилита командной строки для Windows от Марка Руссиновича, позволяет создавать и удалять точки соединения NTFS для файлов и каталогов.
  • NTFS Links[11] - дополнение к оболочке Windows, схож по функционалу с первым в списке дополнением.

Примечания[править | править вики-текст]

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]