linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Файловая система/hard-link

kb/filesystem ── Файловая система ── beginner

Hard link

Hard link - второе имя для того же [[inode]]. Оба имени равноправны: файл живёт пока есть хотя бы одно из них.

view as markdownaka: hardlink, hard-links

Что такое hard link

Команда ln src dst (без флагов) создаёт hard link - новую запись в директории, которая ссылается на тот же inode что и src. После этого:

  • src и dst имеют одинаковый inode-номер (ls -i покажет)
  • stat у обоих показывает Links: 2 (количество имён выросло)
  • изменения через любое имя видны через любое - это один файл
  • rm src оставляет файл целым: блоки освобождаются только когда исчезнет последнее имя

Ограничения

Hard link можно делать только в пределах одной файловой системы - inode локален к конкретной FS. И только на обычные файлы: на директории hard link запрещён (это ломает аcyclic-структуру файлового дерева; есть исключение для . и ..).

Для cross-filesystem-ссылок и ссылок на каталоги - symbolic-link.

Где встречается на практике

  • Snapshot-бэкапы (rsync --link-dest) - между бэкапами сохраняются hard link'и на не изменившиеся файлы; по байтам экономится огромное количество места
  • Дедупликация в /usr/share/doc, образах Docker layers (на ext4)
  • Атомарные публикации: ln new staging → mv -T staging old гарантирует что в любой момент old указывает либо на старое, либо на новое содержимое без промежуточного состояния

§ команды

bash
ln a.txt b.txt && ls -li a.txt b.txt

Создать hard link и убедиться что у обоих один inode

bash
stat a.txt

Поле Links покажет количество имён, ссылающихся на этот inode

bash
find . -inum 12345

Найти все имена которые указывают на конкретный inode

§ см. также

  • inodeInodeInode - это запись в файловой системе с метаданными и указателями на блоки данных файла. Имя файла лежит отдельно (в директории) и просто указывает на inode.
  • symbolic-linkSymbolic linkSymlink - отдельный файл-«ярлык», который содержит путь к цели. В отличие от [[hard-link]], это разные [[inode]], symlink может указывать на что угодно (включая несуществующее).
  • fhsFilesystem Hierarchy Standard (FHS)FHS - стандарт что лежит в каких корневых каталогах Linux: /etc - конфиги, /var - изменяемые данные, /usr - статика дистрибутива, /home - пользователи, /tmp - временное.

§ упоминается в уроках

  • ›beginner-02-files-and-text
  • ›beginner-03-inodes-and-links
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки