В файловых системах Unix каждое имя файла на самом деле представляет собой жесткую ссылку на местоположение данных на диске, называемую inode. Если вы создадите новую жесткую ссылку на существующий файл, это не займет дополнительного места на диске, поскольку это просто еще один указатель на те же данные. Если вы редактируете данные по той или иной ссылке (или редактируете inode напрямую), оба файла будут изменены.
Система ведет подсчет того, сколько жестких ссылок имеет каждый индекс. Когда количество ссылок равно 0, файл больше не может быть достигнут, и данные помечены как безопасные для перезаписи. Таким образом, при наличии файла с 2 жесткими ссылками, если вы удалите любую ссылку, данные не будут удалены. Только если вы удалите оба, данные исчезнут.
Вы можете увидеть номера файлов inode, используя -i
переключатель к ls
команде.
Мягкая ссылка, с другой стороны, указывает на другой файл по имени файла. Если вы переместите или удалите исходный файл, ссылка будет разорвана.