Справочник

Команда ln: как создать символическую ссылку в Linux

Символическая ссылка — это ярлык: файл, который указывает на другой файл или папку. На сервере ссылками включают сайты в nginx и переключают версии сайта. Ниже — как их создавать, проверять и удалять.

Обновлено 11.10.2026≈ 5 мин чтения
Содержание 11

Что сделать прямо сейчас

  1. Подключитесь к серверу — инструкция.
  2. Включите сайт в nginx ссылкой на его настройки: sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/.
  3. Проверьте, что ссылка ведёт куда нужно: ls -l /etc/nginx/sites-enabled/. После имени ссылки стоит стрелка -> и путь к файлу.
  4. Проверьте настройки и примените их: sudo nginx -t, затем sudo systemctl reload nginx.

Сначала пишут, на что ссылаться, затем — где создать ссылку. Если вторым указать папку, ссылка появится в ней под тем же именем.

Как устроена команда

ln -s ЧТО ГДЕ
ЧастьЧто значит
-sсоздать символическую ссылку
ЧТОфайл или папка, на которые ссылаемся
ГДЕимя новой ссылки или папка, в которой её создать

Пишите в ЧТО полный путь от корня, со слешем в начале. Относительный путь ln сохранит как есть, и считаться он будет от папки, где лежит ссылка, а не от папки, где вы были. Например, sudo ln -s sites-available/example.com /etc/nginx/sites-enabled/ из папки /etc/nginx создаст ссылку, которая никуда не ведёт.

ln не проверяет, существует ли ЧТО: ссылка на опечатку создастся без ошибки. Поэтому после создания проверяйте её — как.

Ключи ln

КлючЧто делает
-sсимволическая ссылка; без этого ключа ln создаёт жёсткую
-fесли на этом месте уже есть файл или ссылка, заменить
-nвместе с -f: заменить саму ссылку на папку, а не создавать ссылку внутри папки
-rвместе с -s: записать путь относительно места ссылки
-vнаписать, какая ссылка создана

Включить и выключить сайт в nginx

В Ubuntu nginx читает настройки сайтов из папки /etc/nginx/sites-enabled/. Сами файлы лежат в /etc/nginx/sites-available/, а в sites-enabled кладут ссылки на них. Так сайт можно выключить, не удаляя настройки.

КомандаЧто делает
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/включить сайт
sudo rm /etc/nginx/sites-enabled/example.comвыключить сайт: удалится только ссылка, файл в sites-available останется

После каждого изменения — sudo nginx -t и sudo systemctl reload nginx. Весь путь от настроек до работающего сайта — в инструкции Как разместить сайт на VPS.

Заменить ссылку на новую

Ключи -sfn меняют ссылку за один шаг. Так переключают сайт на новую версию: ссылка /var/www/current ведёт на папку с текущей версией.

sudo ln -sfn /var/www/releases/2 /var/www/current

Без -n ln увидит, что /var/www/current ведёт на папку, и создаст новую ссылку внутри неё, а старая останется.

Куда ведёт ссылка

КомандаЧто покажет
ls -l /etc/nginx/sites-enabled/ссылки и пути, на которые они ведут
readlink /etc/nginx/sites-enabled/example.comпуть, записанный в ссылке
readlink -f /etc/nginx/sites-enabled/example.comполный путь к файлу, на который ссылка ведёт в итоге
readlink -e /etc/nginx/sites-enabled/example.comто же, но если файла нет — ничего не выведет

Если readlink -e ничего не вывел, ссылка битая: файла, на который она ведёт, нет. Удалите её и создайте заново с правильным путём.

Как удалить ссылку

sudo rm /etc/nginx/sites-enabled/example.com

rm удаляет саму ссылку, файл, на который она вела, остаётся. Ссылку на папку удаляйте так же — без слеша в конце и без ключа -r: rm /var/www/current. Со слешем команда обратится к самой папке, на которую ведёт ссылка.

Жёсткая ссылка

Без ключа -s ln создаёт жёсткую ссылку — второе имя того же файла. Для папок жёсткие ссылки запрещены. Для настроек и сайтов на сервере используйте символические, с -s.

Ошибки и как их исправить

ОтветЧто значитЧто сделать
failed to create symbolic link …: File existsна этом месте уже есть файл или ссылкапроверьте ls -l; заменить — ключи -sfn
failed to create symbolic link …: Permission deniedнет прав на эту папкудобавьте sudo
failed to create symbolic link …: No such file or directoryнет папки, в которой создаётся ссылкапроверьте второй путь на опечатки
hard link not allowed for directoryзабыт ключ -sдобавьте -s
target … is not a directoryпосле -t указана не папкапроверьте путь после -t
sudo nginx -t пишет No such file or directory про файл в sites-enabledссылка битаяразбор ошибки

Источники

Сверено 11 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 11.10.2026