Как создать символьную ссылку в Linux

13.07.2021

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

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

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

  1. Могут ссылаться на файлы и каталоги;
  2. После удаления, перемещения или переименования файла становятся недействительными;
  3. Права доступа и номер inode отличаются от исходного файла;
  4. При изменении прав доступа для исходного файла, права на ссылку останутся неизменными;
  5. Можно ссылаться на другие разделы диска;
  6. Содержат только имя файла, а не его содержимое.

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

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

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

  1. Работают только в пределах одной файловой системы;
  2. Нельзя ссылаться на каталоги;
  3. Имеют ту же информацию inode и набор разрешений что и у исходного файла;
  4. Разрешения на ссылку изменяться при изменении разрешений файла;
  5. Можно перемещать и переименовывать и даже удалять файл без вреда ссылке.

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

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

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

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

  • -d - разрешить создавать жесткие ссылки для директорий суперпользователю;
  • -f - удалять существующие ссылки;
  • -i - спрашивать нужно ли удалять существующие ссылки;
  • -P - создать жесткую ссылку;
  • -r - создать символическую ссылку с относительным путем к файлу;
  • -s - создать символическую ссылку.

Пример использования символьных ссылок:

ln -s /home/domenland/domenland.ru/docs/bitrix bitrix

Здесь мы создаем символьную ссылку на папку "bitrix", в папке docs, путь пишем от начала корневой директории доступной пользователю.