Символические ссылки (Symlinks) в Linux: как создать ярлык командой ln -s
Что такое символическая ссылка (Symlink) простыми словами
Символическая ссылка (Symlink / Symbolic Link / Софтлинк) в Linux — это точный аналог привычного «Ярлыка» в Windows. Это крошечный специальный файл, который содержит путь к оригинальному целевому файлу или папке. Когда программа или пользователь обращается к ссылке, Linux прозрачно перенаправляет операцию на реальный целевой объект.
Зачем нужны симлинки системному администратору
- Экономия диска: Не нужно копировать тяжелый каталог с файлами весом 100 ГБ в несколько мест — достаточно создать легкий ярлык размером несколько байт.
- Перенос данных на другой быстрый диск: Если раздел
/var/lib/mysqlпереполнился, базу переносят на примонтированный SSD диск/mnt/fast_ssd/mysql, а на старом месте создают симлинк. Все программы продолжают работать без изменения конфигов! - Мгновенное переключение версий (Zero-Downtime Deploy): Ссылка
currentуказывает на папкуrelease_v2. Чтобы откатиться на прошлую версию, ссылку переключают наrelease_v1за одну миллисекунду.
Пошаговое создание и удаление симлинков
Синтаксис команды (Главное правило, чтобы не запутаться)
Команда всегда строится по правилу: ln -s [КУДА УКАЗЫВАЕТ / ОРИГИНАЛ] [ИМЯ ЯРЛЫКА / ССЫЛКА]
Шаг 1: Создание ссылки на файл
ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.confШаг 2: Создание ссылки на тяжелую папку
Создадим ярлык на сетевую или объемную папку в домашней директории:
ln -s /var/log/nginx /home/ubuntu/nginx_logsТеперь, если зайти в папку cd /home/ubuntu/nginx_logs, вы окажетесь внутри системной папки логов.
Шаг 3: Проверка созданной ссылки
Выполните команду ls -l:
ls -l /home/ubuntu/nginx_logsВы увидите стрелочку: nginx_logs -> /var/log/nginx (буква l в начале прав подтверждает, что это Link).
Шаг 4: Как правильно удалить симлинк
Чтобы удалить ссылку (не повредив оригинальные файлы!), используйте стандартную команду rm:
rm /home/ubuntu/nginx_logsВнимание: Никогда не ставьте слеш / в конце имени ссылки при удалении (не пишите rm nginx_logs/), иначе система попытается стереть содержимое оригинальной папки!
Типовые ошибки администраторов
- Путаница аргументов местами: Если написать
ln -s Ссылка Оригинал, будет создана битая циклическая ссылка, которая не работает. - Использование относительных путей без понимания: Если создать ссылку командой
ln -s file.txt ../link.txt, ссылка может стать битой при обращении из других каталогов. Всегда указывайте полные абсолютные пути (начиная со слеша/). - «Битые» ссылки (Broken Symlinks): Если оригинальный файл удалить или переименовать, ссылка станет красной и перестанет открываться с ошибкой No such file or directory.
Инженеры ITSTM безопасно смигрируют терабайты данных, настроят блочные LVM-тома и симлинки без нарушения целостности сервисов.
Частые вопросы (FAQ)
В чем разница между символической (Soft link) и жесткой (Hard link) ссылкой?
Символическая ссылка (ln -s) — это просто текстовый ярлык на путь, она может ссылаться на папки и работать между разными дисками. Жесткая ссылка (ln без -s) создает вторую прямую запись в таблице inodes на те же физические секторы диска (работает только для файлов внутри одного раздела).
Что произойдет с оригинальным файлом, если я удалю симлинк?
Ничего. Оригинальный файл останется в полной сохранности на своем месте. Удаляется только сам ярлык.
Что произойдет, если я удалю оригинальный файл, на который вел симлинк?
Ссылка останется на диске, но станет 'битой' (Dangling/Broken Symlink). При попытке ее прочитать система выдаст ошибку, что файл не найден.
Как быстро найти все битые симлинки в системе?
Используйте команду поиска: find /path/to/search -xtype l