← Назад ко всем вопросам

Что происходит при удалении hardlink в Linux

1️⃣ Как кратко ответить

При удалении hardlink в Linux удаляется только ссылка на данные, но сами данные остаются на диске до тех пор, пока существует хотя бы одна ссылка на них. Если удаляется последняя ссылка, данные освобождаются.

2️⃣ Подробное объяснение темы

В Linux файловая система организована таким образом, что файлы и их имена (ссылки) хранятся отдельно. Это позволяет создавать несколько имен (ссылок) для одного и того же файла, что называется hardlink. Hardlink — это дополнительная ссылка на данные, которые уже существуют на диске.

Как это работает

Каждый файл в файловой системе Linux представлен inode — структурой данных, которая хранит информацию о файле, такую как права доступа, владелец, размер и местоположение данных на диске. Когда создается hardlink, создается новая запись в каталоге, которая указывает на тот же inode, что и оригинальный файл.

Пример создания hardlink

# Создаем файл
echo "Hello, World!" > original.txt
​
# Создаем hardlink
ln original.txt hardlink.txt
  • echo "Hello, World!" > original.txt: Создает файл original.txt с содержимым "Hello, World!".
  • ln original.txt hardlink.txt: Создает hardlink hardlink.txt, который указывает на тот же inode, что и original.txt.

Что происходит при удалении hardlink

Когда вы удаляете hardlink, например, с помощью команды rm, происходит следующее:

  1. Удаление ссылки: Удаляется запись в каталоге, которая указывает на inode.
  2. Проверка ссылок: Файловая система проверяет, сколько ссылок осталось на этот inode.
  3. Освобождение данных: Если это была последняя ссылка на inode, данные освобождаются, и inode становится доступным для повторного использования.

Пример удаления hardlink

# Удаляем hardlink
rm hardlink.txt
  • rm hardlink.txt: Удаляет ссылку hardlink.txt. Если original.txt все еще существует, данные остаются на диске.

Зачем это нужно

Hardlink полезны для экономии дискового пространства и управления файлами. Они позволяют иметь несколько имен для одного и того же файла без дублирования данных. Это особенно полезно для резервного копирования и управления версиями файлов, где изменения в одном файле автоматически отражаются во всех его hardlink.

Ограничения

  • Hardlink можно создавать только в пределах одной файловой системы.
  • Нельзя создавать hardlink для каталогов, чтобы избежать циклических ссылок.
  • Удаление всех ссылок на файл приводит к освобождению данных, поэтому важно следить за количеством ссылок, если данные должны быть сохранены.

Тема: Linux / Unix
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки