Linux. Символические ссылки
25.02.2026
Теги: CLI • Linux • Директория • Команда • Файл • ФайловаяСистема
Символическая ссылка (symbolic link, symlink, soft link) в Linux — это специальный тип файла, который выступает в роли «указателя» или «ярлыка» на другой файл или директорию в файловой системе. Когда система обращается к символической ссылке, она автоматически перенаправляет запрос по указанному в ней пути.
Основной синтаксис
$ ln -s /path/to/original /path/to/symlink
Примеры использования
Ссылка на файл
$ ln -s /path/to/orig_file.txt /path/to/orig_link.txt
Ссылка на директорию
$ ln -s /var/www/project /home/evgeniy/project
Создание ссылки в текущей директории (можно не указывать полный путь до ссылки)
$ pwd /home/evgeniy/nginx $ ln -s /etc/nginx/nginx.conf nginx.conf
Создание ссылки из директории файла (можно не указывать полный путь к файлу)
$ pwd /var/www/project/index.php $ ln -s index.php /home/evgeniy/project/index.php
Перезапись существующей ссылки
$ ln -sf /path/to/new/orig_file.txt /path/to/orig_file.txt
-f (force) перезаписывает существующую ссылку.
Проверка ссылки
$ ls -la /path/to/simlink
# lrwxrwxrwx 1 user user 20 Jan 1 12:00 symlink -> /path/to/original
Полезные команды
| Команда | Описание |
|---|---|
ls -la |
Идеально для человека, сразу видно, что это ссылка |
readlink -f ссылка |
Текстовое значение, которое хранится внутри файла-ссылки |
realpath -f ссылка |
Возвращает абсолютный путь (рекомендуется для скриптов) |
unlink ссылка |
Удалить ссылку |
rm ссылка |
Удалить ссылку |
Команды unlink и rm — обе удаляют символическую ссылку, не затрагивая оригинал. Но есть некоторые различия, которые перечислены ниже.
| Возможность | unlink |
rm |
|---|---|---|
| Удалить один файл/ссылку | ✅ | ✅ |
| Удалить несколько файлов сразу | ❌ | ✅ |
Рекурсивное удаление (-r) |
❌ | ✅ |
Принудительное удаление (-f) |
❌ | ✅ |
Интерактивный режим (-i) |
❌ | ✅ |
Команда rm — может удалить несколько ссылок за раз
$ rm link1 link2 link3
Команда unlink — принимает только один аргумент
$ unlink link1 $ unlink link2 $ unlink link3
unlink семантически точнее выражает намерение — «отвязать ссылку», а не «удалить файл».
⚠️ Осторожно с rm и директориями-ссылками
# Ссылка в домашней директории на директорию /var/www (все веб-проекты) ln -s /var/www /home/evgeniy/www rm /home/evgeniy/www # ✅ ОК, удалит только ссылку на директорию www rm -r /home/evgeniy/www/ # ❌ Удалит содержимое оригинальной директории!
Когда что использовать?
unlink— когда нужно явно и безопасно удалить одну ссылкуrm— когда нужна гибкость и удаление нескольких объектов
Важные моменты
- При удалении ссылки оригинал не удаляется
- При удалении ссылки на директорию — слэш к конце ссылки опасен
- Если удалить оригинал — ссылка станет битой (dangling symlink)
- Пути лучше указывать абсолютные, чтобы избежать проблем
Поиск: CLI • Linux • Команда • ln • unlink • symlink • Ссылка • Файл • Директория