Символические ссылки в Linux (Symlink): создание ярлыков через ln -s
Что такое символическая ссылка (Symlink)?
Симлинк — это специальный ярлык (указатель), который ссылается на другой файл или директорию в файловой системе. Программы работают с симлинком точно так же, как с оригинальным файлом, не дублируя место на диске. Это фундамент включения виртуальных хостов в Nginx и Apache.
Создание и удаление символических ссылок
Основной синтаксис команды ln -s:
ln -s /абсолютный_путь/к/оригиналу /путь/к/создаваемому/ярлыкуПрактические примеры:
1. Активация сайта в Nginx (создание ссылки из sites-available в sites-enabled):
sudo ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/2. Создание быстрого ярлыка на папку логов в домашнем каталоге:
ln -s /var/log/nginx/ ~/nginx_logs3. Как проверить, куда указывает ссылка:
ls -l ~/nginx_logsВывод покажет стрелку: nginx_logs -> /var/log/nginx/.
4. Как правильно удалить ссылку:
# Удаляйте симлинк как обычный файл (БЕЗ слэша на конце!):
rm ~/nginx_logs
# Либо специализированной командой:
unlink ~/nginx_logsКритическое правило: Всегда используйте полные абсолютные пути при создании ссылок. Относительные пути часто приводят к «битым» (красным) неработающим ссылкам.
Частые вопросы (FAQ)
В чем разница между жесткой (hard link) и символической (soft/symlink) ссылкой?
Символическая ссылка (ln -s) — это ярлык на путь. Жесткая ссылка (ln без флага -s) — это прямая запись в inode файла, жесткие ссылки нельзя создавать для папок и между разными дисковыми разделами.
Удалится ли оригинальный файл, если я удалю симлинк?
Нет! Удаление символической ссылки через rm symlink удаляет только сам ярлык. Исходный файл остается нетронутым.
Что означает мигающий красный цвет ссылки в ls -l?
Это «битая» ссылка (Broken Symlink). Она указывает на несуществующий путь (оригинальный файл был удален или переименован).
Как принудительно перезаписать уже существующий симлинк?
Используйте флаг -f (force): ln -sf /новый/путь /имя/ссылки.