Разница между жесткой ссылкой и символической ссылкой (мягкой ссылкой).
Ссылка в UNIX похожа на указатель на файл. Создание ссылок — это своего рода ярлыки для доступа к файлу.
Существует два типа ссылок:
- Мягкая ссылка или символические ссылки.
- Жесткие ссылки.
Эти ссылки ведут себя по-разному, когда источник ссылки перемещается или удаляется. Символические ссылки не обновляются; жесткие ссылки всегда ссылаются на источник, даже если они перемещены или удалены.
Теперь мы объясним разницу между жесткой ссылкой и мягкой ссылкой.
Жесткие ссылки:
Жесткая ссылка — это ярлык для другого файла, он связан с inode существующего файла.
- Каждый жестко связанный файл имеет один и тот же номер инода.
- Жесткие ссылки не допускаются для каталогов.
- Удаление любой ссылки просто уменьшает количество ссылок, но не влияет на другие ссылки.
- Даже если мы изменим имя исходного файла, жесткие ссылки будут работать правильно.
- Его нельзя использовать в файловых системах.
- Если исходный файл удален, ссылка по-прежнему показывает содержимое файла.
- Размер любого файла с жесткой ссылкой такой же, как у исходного файла, и если мы изменим содержимое любой из жестких ссылок, размер всех файлов с жесткой ссылкой будет обновлен.
- Данные, присутствующие в исходном файле, по-прежнему будут доступны в жестких ссылках.
- Жесткие ссылки работают быстрее.
Команда для создания жесткой ссылки:
ln ‹источник› ‹ссылка›
Символическая ссылка (программные ссылки)
Символическая ссылка — это объект файловой системы, указывающий на другой объект файловой системы. Объект, на который указывают, называется целью.
- Файлы с программными ссылками получают другой номер индекса.
- Мягкие ссылки могут использоваться для связывания каталогов.
- Удаление программной ссылки ни на что не влияет, кроме удаления исходного файла ссылка становится «висячей» ссылкой, которая указывает на несуществующий файл.
- Его можно использовать в файловых системах.
- Мягкие ссылки указывают только на имя файла, они не сохраняют данные файла.
- Если исходный файл удален, ссылка не будет работать, поскольку она не имеет доступа к данным исходного файла.
- Мягкие ссылки немного медленнее.
Команда для создания мягкой ссылки:
ln -s софтлинк имя_файла