Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Символические ссылки в Linux: команда ln -s для новичков с примерами

Обновлено: 27.08.2026 · Официальная документация ↗

Зачем нужны символические ссылки (Symlinks)?

Символическая ссылка в Linux — это аналог ярлыка в Windows. Она указывает на реальный файл или директорию, расположенную в другом месте файловой системы. Программы и веб-серверы обращаются к симлинку прозрачно, как к обычной реальной папке.

СценарийОбычное копирование (cp -r)Создание симлинка (ln -s)
Общая папка с фото для 5 сайтов (100 ГБ)Займет 500 ГБ на диске (по 100 ГБ каждому сайту)Займет 0 МБ (все сайты читают одну исходную папку)
Обновление общего файлаНужно вручную перезаписывать файл в 5 разных местахМеняется в одном месте — мгновенно видно на всех сайтах
Активация конфигов в NginxКопирование файла приводит к расхождению версийСтандарт архитектуры (sites-available -> sites-enabled)

Как правильно создавать и удалять символические ссылки

Главное правило команды ln -s: первым аргументом всегда указывается РЕАЛЬНЫЙ файл-источник (Куда), а вторым аргументом — создаваемый ЯРЛЫК (Где).

  1. Шаг 1. Создание симлинка на папку:

    Прокинем общую папку с изображениями /storage/media в корень сайта /var/www/my_site/public/uploads:

    ln -s /storage/media /var/www/my_site/public/uploads
  2. Шаг 2. Всегда используйте АБСОЛЮТНЫЕ пути:

    При использовании относительных путей (например, ln -s ../media uploads) ярлык сломается, если его вызовет веб-сервер из другого контекста. Всегда пишите полный путь от корня /.

  3. Шаг 3. Как проверить, куда указывает ссылка:

    Выполните команду ls -l в папке с созданным симлинком:

    ls -l /var/www/my_site/public/

    Вы увидите стрелочку: uploads -> /storage/media.

  4. Шаг 4. Как правильно удалить символическую ссылку:
    Осторожно: Никогда не ставьте слэш / на конце имени ссылки при удалении! Команда rm -rf uploads/ сотрет файлы внутри РЕАЛЬНОЙ исходной папки.

    Удаляйте ссылку как обычный файл:

    # Безопасный способ через утилиту unlink:
    unlink /var/www/my_site/public/uploads
    
    # Либо через rm (без слэша на конце!):
    rm /var/www/my_site/public/uploads
💡 Практика специалистов: Симлинки — основа правильной организации бесшовного деплоя (Zero-Downtime Deployment). Папка 'current' вашего сайта является симлинком на конкретный релиз 'releases/2025-02-23_v1'. При откате назад вы просто переключаете симлинк на предыдущую папку релиза за 0.01 секунды.

Частые вопросы (FAQ)

В чем разница между жесткой (Hard link) и мягкой/символической (Soft/Symbolic link) ссылкой?

Символическая ссылка (ln -s) — это файл-указатель по пути (работает для папок и между разными дисками). Жесткая ссылка (ln без ключа -s) создает вторую прямую запись на тот же физический сектор inode на диске (не работает для папок и разных разделов).

Что такое 'битая' ссылка (broken symlink)?

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

Почему Nginx выдает ошибку 403 / 404 при попытке открыть симлинк?

Убедитесь, что веб-сервер имеет права на чтение целевой исходной папки, а в конфигурации Nginx внутри блока location включена директива: disable_symlinks off;.

Как найти все сломанные симлинки в системе?

Используйте встроенную утилиту find: find /var/www/ -xtype l.

Полезные материалы
Рекомендуем