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

Создание жесткой ссылки

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

Команда ls -l позволяет убедиться в наличии трех жестких ссылок на исходный файл.

Просмотр информации о ссылках

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

Три ссылки указывают на один и тот же дескриптор

Символьные ссылки создаются той же командой ln, однако с добавлением ключа -s (от "symbolic"). В этом случае первым аргументом является абсолютный адрес целевого файла или каталога, в то время как вторым аргументом может быть как абсолютный, так и относительный адрес новой символьной ссылки.

Создание символьной ссылки: ln -s

На рабочем столе создаются две символьные ссылки: одна на папку image, а другая на файл 2018.ods. Если ссылка создается в другом каталоге, её имя может совпадать с именем оригинального файла или каталога. Команда ls -l, помимо прочего, показывает адрес, на который указывает символьная ссылка. Если бы мы использовали относительные адреса при создании символьных ссылок, то они были бы сохранены именно такими и могли бы стать недоступными.

Практическая работа

Создайте текстовый документ через перенаправление вывода команды cal. Добавьте к этому файлу дополнительную жесткую ссылку. Проведите изменения в файле, обращаясь к нему по второй ссылке. Для внесения изменений, например, добавления даты, используйте перенаправление вывода команды date и символ >>. Просмотрите содержимое файла, используя первое имя, что подтвердит, что речь идет об одном и том же файле, доступном под разными именами.

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

Вопросы для самопроверки:

  1. Какая команда в Linux используется для создания жесткой ссылки на существующий файл?
  2. Каким ключом сопровождается команда ln при создании символьной ссылки?
  3. Какой командой можно проверить наличие дополнительных жестких или символьных ссылок на файл?

Программа курса:

  1. Описание курса
  2. История операционной системы Linux
  3. Основы лицензии GNU GPL и её преимущества
  4. Функции и структура ядра Linux-систем
  5. Структура и каталоги файловой системы Linux
  6. Основные типы файлов в системе Linux
  7. Интерфейс командной строки в Linux
  8. Командная оболочка Bash в Linux
  9. Использование параметров команд в Bash
  10. Использование Ctrl+C, Ctrl+D и Ctrl+Z
  11. Автодополнение и история команд в Bash
  12. Перенаправление ввода и вывода в Bash
  13. Документация Linux и Man-страницы
  14. Абсолютная и относительная адресация в Linux
  15. Команда ls - как просматривать каталоги в Linux
  16. Копирование, перемещение и удаление в Linux
  17. Жесткие и символьные ссылки в Linux
  18. Создание жестких и символических ссылок в Linux
  19. Права доступа к файлам и каталогам в Linux
  20. Изменение прав доступа к файлам с помощью chmod
  21. Использование шаблонов имен файлов в Linux
  22. Поиск файлов в Linux с помощью команды find
  23. Использование команды sudo в Linux
  24. Управление пакетами с помощью APT в Linux