Ответ
Это два принципиально разных механизма ссылок в Linux.
Hardlink:
- Что это: Прямая ссылка на inode (метаданные и данные файла). Создание хардлинка добавляет еще одну запись в директории, указывающую на тот же inode.
- Поведение: Все хардлинки — это одно и то же. Изменение содержимого, прав доступа или владельца по одному имени отразится на всех. Файл физически удаляется с диска только когда удален последний хардлинк на него.
- Ограничение: Нельзя создать хардлинк для директории (обычно) и нельзя пересекать границы файловых систем.
Symlink (Symbolic Link):
- Что это: Отдельный файл специального типа, который содержит текстовый путь к целевому файлу или папке.
- Поведение: Это указатель. Если переместить или удалить цель, симлинк "сломается". Права доступа у симлинка свои, но при операциях чтения/записи через него проверяются права цели.
- Гибкость: Может ссылаться на что угодно, включая директории и файлы на других разделах (mount points).
Ключевая аналогия: Хардлинк — это дополнительное имя для человека. Симлинк — это записка с указанием, где этого человека найти.
Пример из DevOps-практики: При развертывании приложения (deploy) часто используется схема с симлинками для текущей версии:
/opt/myapp/releases/v1.2.3/
/opt/myapp/releases/v1.3.0/
/opt/myapp/current -> /opt/myapp/releases/v1.3.0/ # Symlink для быстрого rollback