Символические и жесткие ссылки

Символические и жесткие ссылки - это особенность файловой системы Linux, которая позволяет размещать один и тот же файл в нескольких директориях. Это очень похоже на ярлыки в Windows.

https://losst.ru/simvolicheskie-i-zhestkie-ssylki-linux

В Linux существует два типа ссылок на файлы. Это символические и жесткие ссылки Linux. Они очень сильно отличаются и каждый тип имеет очень важное значение. В этой небольшой статье мы рассмотрим чем же отличаются эти ссылки, зачем они нужны, а также как создавать ссылки на файлы в Linux.

Символические ссылки

Символические ссылки более всего похожи на обычные ярлыки. Они содержат адрес нужного файла в вашей файловой системе. Когда вы пытаетесь открыть такую ссылку, то открывается целевой файл или папка. Главное ее отличие от жестких ссылок в том, что при удалении целевого файла ссылка останется, но она будет указывать в никуда, поскольку файла на самом деле больше нет.

Вот основные особенности символических ссылок:

  • Могут ссылаться на файлы и каталоги;

  • После удаления, перемещения или переименования файла становятся недействительными;

  • Права доступа и номер inode отличаются от исходного файла;

  • При изменении прав доступа для исходного файла, права на ссылку останутся неизменными;

  • Можно ссылаться на другие разделы диска;

  • Содержат только имя файла, а не его содержимое.

Теперь давайте рассмотрим жесткие ссылки.

Жесткие ссылки

Этот тип ссылок реализован на более низком уровне файловой системы. Файл размещен только в определенном месте жесткого диска. Но на это место могут ссылаться несколько ссылок из файловой системы. Каждая из ссылок - это отдельный файл, но ведут они к одному участку жесткого диска. Файл можно перемещать между каталогами, и все ссылки останутся рабочими, поскольку для них неважно имя. Рассмотрим особенности:

  • Работают только в пределах одной файловой системы;

  • Нельзя ссылаться на каталоги;

  • Имеют ту же информацию inode и набор разрешений что и у исходного файла;

  • Разрешения на ссылку изменяться при изменении разрешений файла;

  • Можно перемещать и переименовывать и даже удалять файл без вреда ссылке.

Использование ссылок в Linux

Теоретические отличия вы знаете, но осталось закрепить все это на практике, поэтому давайте приведем несколько примеров работы со ссылками в Linux. Для создания символических ссылок существует утилита ln. Ее синтаксис очень прост:

$ ln опции файл_источник файл_ссылки

Рассмотрим опции утилиты:

  • -d - разрешить создавать жесткие ссылки для директорий суперпользователю;

  • -f - удалять существующие ссылки;

  • -i - спрашивать нужно ли удалять существующие ссылки;

  • -P - создать жесткую ссылку;

  • -r - создать символическую ссылку с относительным путем к файлу;

  • -s - создать символическую ссылку.

Создание символических ссылок

Создадим символическую ссылку Linux, для этого используется команда ln с опцией -s:

ln -s source softlink

Создание жестких ссылок

Создадим жесткую ссылку Linux. Для этого достаточно вызвать утилиту без параметров:

ln source hardlink

Выводы

Это все, что вам было необходимо знать про символические и жесткие ссылки linux. Надеюсь, вы получили общее представление об этих возможностях файловой системы и сможете использовать их для решения своих задач.

Last updated