Что такое символьная ссылка (soft link) в Linux?

«Что такое символьная ссылка (soft link) в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Символьная ссылка (symbolic link или soft link) — это специальный файл в Linux, который выступает как указатель на путь к другому файлу или директории. Это похоже на ярлык в Windows.

Ключевые характеристики:

  • Создание: Командой ln -s <целевой_файл_или_папка> <имя_ссылки>.
  • Содержимое: Ссылка содержит только текстовый путь к цели.
  • Межфайловая система: Может ссылаться на объекты в других разделах или файловых системах.
  • Поведение при удалении: Удаление самой ссылки не затрагивает цель. Если удалить целевой файл, ссылка становится "битой" (dangling link).
  • Разрешение прав: Права доступа к файлу, на который ведет ссылка, определяются правами самого целевого файла, а не ссылки.

Практический пример в DevOps:

# Создаем конфигурационный файл по умолчанию
sudo nano /etc/myapp/config_default.yaml

# Создаем символьную ссылку, указывающую на актуальную конфигурацию для среды
sudo ln -s /etc/myapp/config_production.yaml /etc/myapp/config_current.yaml

# Теперь приложение может всегда читать из /etc/myapp/config_current.yaml
# Чтобы переключить среду, достаточно поменять цель ссылки
sudo rm /etc/myapp/config_current.yaml
sudo ln -s /etc/myapp/config_staging.yaml /etc/myapp/config_current.yaml

# Проверяем ссылку
ls -l /etc/myapp/config_current.yaml
# Вывод: lrwxrwxrwx 1 root root 35 Apr 10 12:00 /etc/myapp/config_current.yaml -> /etc/myapp/config_staging.yaml

Почему это полезно: Символические ссылки широко используются для управления версиями ПО (например, через update-alternatives), организации конфигураций для разных сред и создания удобных путей к часто используемым директориям.