Мягкие и жёсткие ссылки

From SysadminWiki.ru
Jump to: navigation, search

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

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

Жёская ссылка (hard link) создаёт ещё одну запись в файловой системе, ссылающуюся на ту же область данных на диске, что и исходный файл. Так как файл это поименованная область на диске, то про жёсткую ссылку можно сказать, что она просто определяет ещё одно наименование уже обозначенной области. Все такие ссылки, включая исходное имя файла воспринимаются системой как синонимы, и сам файл не удаляется пока у него существует хотя бы одно имя. В случае удаления исходного файла, удаляется всего лишь его имя в файловой таблице, но сам файл будет доступен по другим именам.

В файловой системе NTFS можно создавать жёсткие ссылки только в пределах одного раздела.


Пример создания жёсткой ссылки с указанием полного пути к ссылке и создание ссылки в текущем каталоге.

  • Linux:
ln <Источник> <Назначение>
ln /home/user/file.ext /home/user2/newfile.ext

Если не указано назначение, то ссылка создаётся в текущем каталоге с тем же именем, что и исходный файл.


  • Windows:
mklink /h C:\Dir1\link-name.txt C:\Dir2\file.ext
mklink /h link-name.txt C:\Dir2\file.ext


Мягкая или символическая ссылка

Мягкая ссылка (soft link) или Символическая ссылка (symbolic link) создаёт указатель на имя файла, а не на область данных. Таким образом, если удалить файл, то символические ссылки, продолжая оставаться в файловой системе, оказываются не рабочими, "битыми".


Пример создания символической ссылки с указанием полного пути к ссылке и создание ссылки в текущем каталоге.

  • Linux
ln -s /home/user/file.ext
  • Windows:
mklink C:\Dir1\link-name.txt C:\Dir2\file.ext
mklink link-name.txt C:\Dir2\file.ext
  • Windows для каталога
mklink /d C:\Dir1 C:\Dir2