Cybersecurity
May 29

Что такое симлинк и хардлинк?

1. Симлинк (Symbolic Link) и Хардлинк (Hard Link)

Хардлинк (жёсткая ссылка)

Хардлинк — это альтернативное имя для уже существующего файла, которое указывает на тот же самый набор данных на диске (inode / MFT-запись в NTFS).
У файла может быть несколько имён (хардлинков), но все они ведут к одним и тем же данным.

Примеры и особенности:

  • Удаление одного хардлинка не удаляет данные, пока остаются другие хардлинки.
  • Все хардлинки равнозначны — нет «основного» файла.
  • Все хардлинки должны находиться на одном разделе/томе.
  • В NTFS: каждая запись в MFT указывает на данные и содержит счётчик ссылок.

Пример (в Windows через fsutil или в Linux: ln file1 file2):

bashCopyEditln original.txt link.txt   # хардлинк

Симлинк (symbolic link, символическая ссылка)

Симлинк — это ярлык, который указывает на путь к другому файлу или каталогу.
Это отдельный файл, который просто содержит путь к другому объекту.

Примеры и особенности:

  • Если удалить оригинальный файл, симлинк становится «битым» (не работает).
  • Симлинки можно создавать на файлы и папки, на разных разделах и даже сетях.
  • В NTFS симлинки — это специальные файлы с атрибутом Reparse Point.

Пример (в Windows: mklink, в Linux: ln -s):

bashCopyEditln -s original.txt symlink.txt  # симлинк