Что такое файловые ссылки в Linux
Что проверяют
Понимаете ли вы устройство файловой системы настолько, чтобы объяснять поведение места на диске, бэкапов и выкладок. Вопрос чисто эксплуатационный: на ссылках держатся переключение релизов, каталог альтернатив и добрая половина сюрпризов со свободным местом на разделе.
Как отвечать
Жёсткая ссылка это дополнительное имя того же inode. Под данные она места не занимает, живёт только внутри одной файловой системы, на каталог не создаётся, а счётчик имён видно во второй колонке вывода ls -l. Данные исчезают, когда пропало последнее имя и закрылся последний дескриптор.
Символическая ссылка это файл, внутри которого лежит путь. Она пересекает файловые системы, указывает на каталоги и остаётся битой, если цель убрали или переименовали.
Дальше называйте эксплуатационные следствия, ради которых вопрос и задают. Удалённый, но открытый процессом лог не возвращает место до перезапуска или переоткрытия файла, и ищут такое через lsof. Инкрементальные бэкапы экономят место жёсткими ссылками на неизменившиеся файлы, но архиватор без ключа сохранения ссылок раздувает архив до полного объёма. Релиз переключают подменой символической ссылки, потому что это одна атомарная операция:
ln -sfn /srv/releases/new /srv/app.tmp && mv -T /srv/app.tmp /srv/appГде спотыкаются
Верят выводу du по каталогу с жёсткими ссылками. Один inode учитывается за обход единожды, поэтому суммы по подкаталогам расходятся с итогом, а перенос на другую файловую систему внезапно требует кратно больше места.
Создают символическую ссылку относительным путём, стоя в другом каталоге. Путь разворачивается от расположения самой ссылки, а не от рабочего каталога команды, и ссылка оказывается битой сразу после создания.
Перевыпускают ссылку на каталог командой ln -sf без ключа -n. Существующая ссылка разыменовывается, новая создаётся внутри целевого каталога, и релиз остаётся старым, зато в каталоге появляется лишняя запись.