Ответ вслух Junior Файловая система и права спрашивают часто обновлено

Жёсткие и символьные ссылки

Вопрос

Объясни разницу между жёсткой и символьной ссылкой. Когда какую использовать?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Файл в Linux это inode с данными, а имя это запись в каталоге. Жёсткая ссылка добавляет второе имя на тот же inode: оба имени равноправны, счётчик ссылок во второй колонке ls -l становится 2.

Что должно прозвучать в ответе

  • Жёсткая ссылка: ещё одно имя того же inode, равноправное с оригиналом

  • Данные живут, пока счётчик ссылок больше нуля и файл никто не держит открытым

  • Жёсткую нельзя на каталог и между разными ФС

  • Символьная: отдельный файл, внутри которого путь к цели

  • Символьная ломается при удалении или переносе цели, зато работает с каталогами и через ФС

  • Пример: symlink на текущий релиз `current -> releases/42` для атомарного переключения

Что могут спросить следом

  • Как атомарно переключить symlink на новый релиз?
  • Как найти все жёсткие ссылки на файл?
  • Что покажет ls -l во второй колонке?

Разбор

Файл в Linux это inode с данными, а имя это запись в каталоге. Жёсткая ссылка добавляет второе имя на тот же inode: оба имени равноправны, счётчик ссылок во второй колонке ls -l становится 2. Если удалить одно имя, данные останутся. Ограничения: нельзя ссылаться на каталог и нельзя через границу файловой системы, потому что номер inode имеет смысл только внутри своей ФС. Символьная ссылка это отдельный маленький файл, в котором записан путь. Она может указывать на каталог и на другой диск, но если цель удалить или переместить, ссылка повиснет. На практике symlink используют для версий: current -> releases/42, а при деплое создают новую ссылку и переименовывают её поверх старой, rename атомарен. Жёсткие ссылки встречаются в бэкапах вроде rsync --link-dest, где неизменённые файлы не копируются, а ссылаются.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.