Содержание:
- Что такое жесткие и символические ссылки в Linux?
- Как создавать жесткие и символические ссылки.
- В чем разница между ними, используя пример для иллюстрации?
Важные команды:
ls -li:
- ls: список файлов и каталогов в текущем каталоге.
- -l: Список в большом формате (с разрешениями, владельцем, группой, размером и т. д.)
- -i: вывести порядковый номер каждого файла.
ln -s:
- ln: Сделать ссылки между файлами.
- -s: Сделать символические ссылки вместо жестких ссылок.
В чем разница между жесткими ссылками и символическими ссылками?
Жесткая ссылка — это тот же файл, что и исходный файл, но с другим именем. Жесткая ссылка относится к тому же месту в памяти, что и исходный файл. Вот почему, если мы изменим содержимое жесткой ссылки, мы также изменим содержимое исходного файла.
Однако символическая ссылка, также известная как программная ссылка, представляет собой другой файл, который занимает другое место в памяти и ссылается на исходный файл, но не имеет содержимого исходного файла, а просто указывает на него.
Как мы можем создать эти ссылки?
Мы используем команду ln, за которой следует имя файла, для которого мы хотим создать ссылку, за которым следует имя новой ссылки для создания. Для создания жесткой ссылки мы используем только команду:
ln имя файла hard_link_name
Но если нам нужно создать символическую ссылку, нам нужен флаг -i, который сообщает вам, что вы создаете символическую ссылку вместо жесткой:
ln -s имя_файла simbolic_link_name
Чтобы проиллюстрировать разницу между жесткой ссылкой и символической ссылкой, давайте создадим новый файл с именем original и поместим в него «Текстовый пример».
Теперь мы создаем жесткую и символическую ссылку на этот файл. давайте назовем symbolic для символической ссылки и hard для жесткой ссылки.
Создание жесткой ссылки:
Создание символической ссылки:
Если вы заметили, Linux покрасил символическую ссылку и поставил стрелку, указывающую, что эта ссылка ведет к файлу с именем original.
Имея все это, как мы можем увидеть разницу между этими ссылками?
С помощью флага -i команды ls мы можем увидеть индекс файла, воспользуемся им.
Как видите, жесткая ссылка и исходный файл указывают на один и тот же индекс файла, а символическая — нет.
Хорошо, это здорово, но что это означает на практике?
Что произойдет, если мы изменим содержимое жесткой ссылки? Изменится ли содержимое исходного файла?
Конечно, потому что они указывают на одни и те же данные, на одно и то же пространство памяти.
Теперь давайте немного поиграем с нашими файлами. Что произойдет, если мы удалим исходный файл? Жесткая ссылка исчезнет?
Посмотрим 👀
Невероятно, но жесткая ссылка все еще существует с содержимым исходного файла, и в этом особенность жесткой ссылки, она похожа на копию исходного файла, но с той большой разницей, что жесткая ссылка указывает на тот же индекс исходного файла. исходный файл.
И… Как вам интересно, что случилось с символической ссылкой? Почему Linux окрашен в красный цвет?
Линукс умен и предупреждает вас, что ссылка больше не работает (она все еще существует, но она бесполезна).
Это все на сегодня.
Теперь вы знаете разницу между жесткой ссылкой и символической ссылкой, поздравляю 😁.