Что такое hardlink в Linux
1️⃣ Как кратко ответить
Hardlink в Linux — это ссылка на данные файла, которая указывает на тот же inode, что и оригинальный файл. Это позволяет нескольким именам файлов указывать на одни и те же данные на диске. Удаление одного из hardlink'ов не удаляет данные, пока существует хотя бы один hardlink.
2️⃣ Подробное объяснение темы
В файловых системах Linux, таких как ext4, каждый файл представлен структурой данных, называемой inode. Inode содержит метаданные о файле, такие как права доступа, владелец, временные метки и указатели на блоки данных на диске. Имя файла, которое вы видите в каталоге, — это просто ссылка на inode.
Hardlink — это дополнительная ссылка на тот же inode. Это значит, что несколько имен файлов могут указывать на одни и те же данные. Все hardlink'и равноправны: нет "оригинального" файла и "ссылок" на него, все они равнозначны.
Пример использования hardlink
Предположим, у вас есть файл file1.txt:
echo "Hello, World!" > file1.txt
Создадим hardlink для этого файла:
ln file1.txt file2.txt
Теперь file1.txt и file2.txt указывают на один и тот же inode. Это значит, что изменения, внесенные в один файл, отразятся и в другом, так как они оба указывают на одни и те же данные.
Проверка inode
Можно проверить, что оба файла указывают на один и тот же inode, используя команду ls -i:
ls -i file1.txt file2.txt
Вывод покажет одинаковые номера inode для обоих файлов, что подтверждает, что они являются hardlink'ами.
Удаление hardlink
Если удалить один из hardlink'ов, например, file1.txt:
rm file1.txt
Данные не будут удалены с диска, так как file2.txt все еще указывает на тот же inode. Данные удаляются только тогда, когда удалены все hardlink'и, указывающие на этот inode.
Применение hardlink
Hardlink'и полезны для экономии дискового пространства и создания резервных копий, так как они позволяют нескольким именам файлов указывать на одни и те же данные без дублирования. Это особенно полезно в системах резервного копирования и управления версиями, где требуется хранить несколько версий файлов без избыточного использования дискового пространства.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться