В чем разница между жесткой ссылкой и символической ссылкой?

Теперь часть имени файла хранится в отдельном специальном файле вместе с частями имен других файлов; этот специальный файл называется каталогом. Каталог, как файл, представляет собой просто массив частей имени файла других файлов. При построении каталога он первоначально заполняется частями имен двух специальных файлов: файлов «.» и «..». Часть имени файла для файла «.» заполняется индексным узлом № файла каталога, в котором была сделана запись; ‘.’ — это жесткая ссылка на файл, реализующий текущий каталог. Часть имени файла для файла «..» заполняется индексным номером файла каталога, который содержит часть имени файла текущего файла каталога. «..» — это жесткая ссылка на файл, который реализует непосредственного родителя текущего каталога. Команда «ln» знает, как создавать жесткие и программные ссылки; команда «mkdir» знает, как создавать каталоги (ОС позаботится об указанных выше жестких ссылках). Существуют ограничения на то, что может быть жестко связано (обе ссылки должны находиться в одной и той же файловой системе, исходный файл должен существовать и т. д.), которые не применимы к программным ссылкам (источник и цель могут находиться в разных файловых системах, источник может не существовать). , и т.д.). OTOH, софтлинки имеют другие ограничения, которых нет у жестких ссылок (дополнительный ввод-вывод, необходимый для завершения доступа к файлу, дополнительное хранилище, занимаемое данными файла софтлинка и т. д.). Другими словами, с каждым из них есть компромиссы. Теперь давайте продемонстрируем кое-что из этого…