Ссылки — это дополнительные записи в каталоге, позволяющие обращаться к файлам или каталогам по другим названиям (в сравнении с фактическими названиями самих каталогов или файлов). Создание ссылок является полезной техникой для работы в файловой системе. В Linux существует два типа ссылок: жесткие и символические. Они отличаются друг от друга и используются для разных целей.
В этой статье мы расскажем, как создать жесткие и символические ссылки в Linux с помощью команды ln
.
Содержание:
- Что такое команда ln
- Как создать жесткие ссылки в Linux
- Как создать символические ссылки в Linux
- Выводы
Что такое команда ln
Утилита ln
используется для создания ссылок между файлами и каталогами. Команда принимает два аргумента: исходный файл / каталог и путь назначения ссылки. Поведение утилиты ln
зависит от того, какую ссылку Вы хотите создать (жесткую или символическую).
Синтаксис команды ln
выглядит следующим образом:
Здесь:
[options]
— необязательные опции утилиты;<source>
— файл или каталог, на который нужно сделать ссылку;<destination>
— путь, где будет создана ссылка.
Как создать жесткие ссылки в Linux
Жесткая ссылка — это функция файловой системы, которая позволяет нескольким записям файлов указывать на один и тот же базовый inode (структуру данных, содержащую метаданные о файле) и блоки данных на жестком диске. Это означает, что изменения, внесенные в оригинальный файл, будут отражены во всех жестких ссылках, и наоборот.
Важно: жесткие ссылки можно создавать только внутри одной файловой системы. Если Вы попытаетесь создать жесткую ссылку на файл в другой файловой системе, вместо нее будет создана символическая ссылка.
Для примера создадим скрипт script.sh
, на который нужно сделать ссылку, и запишем в него какой-либо код. Выполним команды ls -l
(для просмотра прав доступа к этому файлу) и cat script.sh
(для вывода на экран его содержимого):
Далее создадим жесткую ссылку к скрипту с путем hardlink.sh
:
Теперь просмотрим права доступа к жесткой ссылке и содержимое, на которое она указывает:
Как Вы могли заметить, скрипт и его жесткая ссылка имеют одинаковые метаданные. По сути, создавая жесткую ссылку на файл, мы привязываемся к его индексному номеру, получая тот же самый блок данных, но без физического создании копии. Это и есть главная особенность жестких ссылок.
В случае удаления исходного файла, созданная жесткая ссылка по-прежнему будет указывать на нужный участок в памяти устройства:
Как создать символические ссылки в Linux
Символическая ссылка (симлинк или мягкая ссылка) — это специальный тип файла, который служит указателем или ярлыком на другой файл или каталог. В отличие от жестких ссылок, символические имеют собственный inode и блок данных, и указывают на путь к целевому файлу. Любые изменения, внесенные в оригинальный файл или каталог, будут отражены при обращении к символической ссылке.
Важно: Вы можете создавать мягкие ссылки на файлы или каталоги, расположенные в других файловых системах.
Для установки символических ссылок нужно использовать команду ln
с параметром -s
. Для примера будем работать с ранее созданным скриптом script.sh
. Допустим, что нам нужно создать для него симлинк softlink.sh
:
На скриншоте видно, что содержимое двух файлов одинаковое, но права доступа к ним и индексные номера отличаются.
При удалении оригинального файла его мягкая ссылка перестает работать. Это происходит из-за того, что она не может найти путь к блоку данных, к которому была привязана. Например:
Выводы
Мы рассказали Вам, что такое жесткие и символические ссылки в операционной системе Linux. Также мы показали, как их создавать с помощью команды ln
и ее опции -s
. Усвоив данную тему, Вы сможете эффективно организовывать свои файлы, создавать ярлыки и упрощать сложные структуры каталогов.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.