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

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

Рубрики:

Linux, Утилиты Linux

Метки:

,

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

В этой статье мы расскажем, как создать жесткие и символические ссылки в Linux с помощью команды ln.

Содержание:

  1. Что такое команда ln
  2. Как создать жесткие ссылки в Linux
  3. Как создать символические ссылки в Linux
  4. Выводы

Что такое команда ln

Утилита ln используется для создания ссылок между файлами и каталогами. Команда принимает два аргумента: исходный файл / каталог и путь назначения ссылки. Поведение утилиты ln зависит от того, какую ссылку Вы хотите создать (жесткую или символическую).

Синтаксис команды ln выглядит следующим образом:

 

Здесь:

  • [options] — необязательные опции утилиты;
  • <source> — файл или каталог, на который нужно сделать ссылку;
  • <destination> — путь, где будет создана ссылка.

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

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

Важно: жесткие ссылки можно создавать только внутри одной файловой системы. Если Вы попытаетесь создать жесткую ссылку на файл в другой файловой системе, вместо нее будет создана символическая ссылка.

Для примера создадим скрипт script.sh, на который нужно сделать ссылку, и запишем в него какой-либо код. Выполним команды ls -l (для просмотра прав доступа к этому файлу) и cat script.sh (для вывода на экран его содержимого):

 

script-file

Далее создадим жесткую ссылку к скрипту с путем hardlink.sh:

 

Теперь просмотрим права доступа к жесткой ссылке и содержимое, на которое она указывает:

 

hardlink-create

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

В случае удаления исходного файла, созданная жесткая ссылка по-прежнему будет указывать на нужный участок в памяти устройства:

 

hardlink-delete

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

Символическая ссылка (симлинк или мягкая ссылка) — это специальный тип файла, который служит указателем или ярлыком на другой файл или каталог. В отличие от жестких ссылок, символические имеют собственный inode и блок данных, и указывают на путь к целевому файлу. Любые изменения, внесенные в оригинальный файл или каталог, будут отражены при обращении к символической ссылке.

Важно: Вы можете создавать мягкие ссылки на файлы или каталоги, расположенные в других файловых системах.

Для установки символических ссылок нужно использовать команду ln с параметром -s. Для примера будем работать с ранее созданным скриптом script.sh. Допустим, что нам нужно создать для него симлинк softlink.sh:

 

softlink-create

На скриншоте видно, что содержимое двух файлов одинаковое, но права доступа к ним и индексные номера отличаются.

При удалении оригинального файла его мягкая ссылка перестает работать. Это происходит из-за того, что она не может найти путь к блоку данных, к которому была привязана. Например:

 

softlink-delete

Выводы

Мы рассказали Вам, что такое жесткие и символические ссылки в операционной системе Linux. Также мы показали, как их создавать с помощью команды ln и ее опции -s. Усвоив данную тему, Вы сможете эффективно организовывать свои файлы, создавать ярлыки и упрощать сложные структуры каталогов.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Утилиты Linux

Метки:

,

Больше похожих постов

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню