Символические и жесткие ссылки в Linux
Ссылка – это своеобразный указатель на файл и его расположение. В операционной системе 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/
Другие статьи
Исправляем ошибку установки обновлений Windows 10
Windows 10 — это уже не самая новая операционная система от Microsoft, но иногда пользователи
Сброс сетевых настроек Windows - командная строка
Сетевые проблемы могут быть очень раздражающими и влиять на нашу работу и повседневную жизнь. В