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

person access_time23-09-2019, 05:19 visibility1 186 chat_bubble_outline0


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

Что такое символические ссылки?

Символическая ссылка (symbolic link) – это специальный файл, указывающий на расположение определенного документа или каталога. Также их называют мягкими (soft links) или сим-ссылками (sym-link, сокращенно). Важно помнить, что ссылка не содержит в себе копии файла.
На один файл можно создавать несколько символических ссылок, при этом они будут иметь разные имена. И если ее удалить, с документом ничего не произойдет. То же происходит и с документом – при его перемещении или удалении ссылка не обновляется автоматически, и получается, что она просто перестает работать.

Как создать символическую ссылку?


Для создания ссылок в операционной системе Linux используется утилита ln (от слова «link»). Для создания символической ссылки необходимо обязательно использовать опцию -s. В итоге, синтаксис на создание «мягкой» ссылки будет выглядеть следующим образом:
ln —s [целевой файл] [имя символической ссылки]
К примеру, я создаю символическую ссылку под названием link1 на файл text.txt, расположенный в следующей директории /home/ayko/Документы. В таком случае команда будет выглядеть следующим образом:
ln -s /home/ayko/Документы/text.txt link1
После этого можно выполнить проверку, введя команду ls -li, указывающую на расположение и наименование исходного файла. В данном случае можно отметить, что обе ссылки и файл, на который они указывают, имеют разные идентификаторы.
Если же удалить целевой документ, а потом опять этой же командой посмотреть на содержимое, утилита выдаст сообщение о том, что файл/каталог не был найден.

Что такое жесткие ссылки?


Жесткая ссылка (hard link) – это как дополнительное имя на существующий файл, оно обязательно должно отличаться от него, но при этом находиться в одной и той же директории. Это не копия, но своеобразный «синоним». При ее создании получается, что на один и тот же элемент просто создается другой путь.
Такая ссылка будет иметь точно такой же идентификатор (inode), как и у оригинального файла. Такие данные, как имя владельца, дата создания и изменения сохранятся. Если же целевой файл удалить, ссылка будет хранить всю информацию о нем.

Как создать жесткие ссылки?


Процесс создания жесткой ссылки отличается от символической лишь одним нюансом – в синтаксисе не используется опция -s. В результате, синтаксис будет выглядеть следующим образом:
ln [целевой файл] [имя жесткой ссылки]
Приведу пример – мне надо создать жесткую ссылку hardlink1 на файл text.txt. Для этого в командной строке «Терминал» я ввожу вот такой запрос:
ln text.txt hardlink1
При выдаче списка файлов идентификатор inode, дата создания, имя владельца и прочая подробная информация будет совпадать. При удалении одного из них файл никуда не денется, просто останется один указатель.

Как удалить ссылки?


Для удаления ссылки, не важно какой – символической или жесткой, используется простая утилита rm. Синтаксис в данном случае будет выглядеть следующим образом:
rm [имя ссылки]

В чем отличия?

На основе указанной выше информации относительно «мягких» ссылок можно сделать несколько выводов:
  • Символическая ссылка указывает на целевой файл или каталог, и фактически является небольшим файлом.
  • При удалении исходника данные не обновятся, и в итоге указатель будет неактуален.
  • Ссылка не содержит в себе содержимого исходника и данных о нем, только путь.
  • Имеет собственные права доступа.
  • Может создаваться на конкретные директории.
  • Имеет другой файловый индекс, отличающийся от целевого документа.
  • Может указывать на несуществующий файл.
А вот жесткая ссылка имеет немного иные характеристики:
  • Представляет собой еще одно имя файла.
  • Не указывает на директорию.
  • Не действует на документы из разных файловых систем – в идеале, жесткая ссылка должна храниться в той же папке, что и исходник.
  • Имеет одинаковые с целевым файлом данные, в том числе дату создания, изменения, идентификатор и имя владельца.
  • Не указывает на несуществующий файл.

Заключение

В операционной системе Linux есть два типа ссылок на файлы, и каждый из них имеет свои особенности. Первый может служить в качестве ярлыка, а вот второй представляется в качестве еще одного полноценного указателя. Количество ссылок не ограничивается, но вот поведение при удалении исходного файла отличается. Исходя из их параметров, пользователю стоит выбирать, подойдет ему подобный вариант или нет.

Источник: httрs://tеhnichка.рrо/symbol-and-hard-links-linux/
tagsКлючевые слова

Другие статьи

Исправляем ошибку установки обновлений Windows 10

Исправляем ошибку установки обновлений Windows 10

persons_moryachok access_time01-мар-2024

Windows 10 — это уже не самая новая операционная система от Microsoft, но иногда пользователи

Сброс сетевых настроек Windows - командная строка

Сброс сетевых настроек Windows - командная строка

persons_moryachok access_time01-мар-2024

Сетевые проблемы могут быть очень раздражающими и влиять на нашу работу и повседневную жизнь. В

Добавить комментарий

Комментарии (0)