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

<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. Надеюсь, вы получили общее представление об этих возможностях файловой системы и сможете использовать их для решения своих задач.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://andrey-ivantsov.gitbook.io/linux/simvolicheskie-i-zhestkie-ssylki.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
