К основному контенту

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

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

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

Содержание статьи: Символические ссылки Жесткие ссылки Использование ссылок в Linux Создание символических ссылок Создание жестких ссылок Выводы Символические ссылки

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

Вот основные особенности символических ссылок: Могут ссылаться на файлы и каталоги; После удаления, перемещения или переименования файла становятся недействительными; Права доступа и номер inode отличаются от исходного файла; При изменении прав доступа для исходного файла, права на ссылку останутся неизменными; Можно ссылаться на другие разделы диска; Содержат только имя файла, а не его содержимое.

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

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

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

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

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

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

Сначала создайте папку test и перейдите в нее:

mkdir test && cd test