Чем символические ссылки отличаются от жестких?

Как связаны имя файла, inode и путь назначения: ограничения жестких ссылок, относительные symlink и сохранение открытого файла после удаления имени.

Короткий ответ

Что ответить на собеседовании

Жесткая ссылка — еще одно имя того же файла и inode в одной файловой системе. Символическая ссылка — отдельный объект с путем к назначению; она может указывать на каталог, другую файловую систему или отсутствующий объект. Относительный путь отсчитывается от каталога ссылки. Ни один вариант не является независимой резервной копией данных.

Подробный разбор

Ответ с пояснениями

В Linux жесткая ссылка — дополнительное имя существующего файла: обе записи каталога ссылаются на один inode. У таких имен нет обязательного разделения на «оригинал» и «копию». Изменение содержимого этого файла доступно через любое его имя.

Жесткие ссылки создаются в пределах одной файловой системы; обычное создание жестких ссылок на каталоги не допускается. Удаление одного имени не уничтожает файл, пока остаются другие жесткие ссылки. Основные правила описаны в руководстве GNU ln.

Символическая ссылка, или symlink, — отдельный объект, содержащий путь. Он может вести к файлу или каталогу, в другую файловую систему и даже к еще не существующему назначению. После перемещения или удаления назначения ссылка может стать неразрешимой.

Относительный путь внутри symlink разрешается относительно каталога, где находится сама ссылка, а не текущего рабочего каталога программы. Это важно при создании ссылок в другом месте.

Пример команд для существующего файла file и еще не занятых имен:

ln file hard
ln -s file soft

Удаление последнего имени тоже не обязательно сразу освобождает данные: процесс может продолжать работать с уже открытым файлом. Этот случай описан в документации unlink.

Оба вида ссылок не заменяют независимый backup. Жесткая ссылка использует те же данные, а символическая только направляет к ним; повреждение содержимого не исправляется наличием дополнительных имен.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку