Механизм ссылок

В операционной системе Linux один и тот же файл может существовать в системе под несколькими разными именами. Для реализации этой возможности используется механизм ссылок.

В Linux существует два типа ссылок: жесткие (hard links) и символические или мягкие (symbolic/soft links). Для создания ссылок обоих типов используется консольная утилита ln.

1. Жесткие ссылки (Hard links)

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

  • Создание: Осуществляется командой ln <исходный_файл> <файл_ссылки> (например, ln file.txt link1). Строго говоря, создание любого нового файла изначально означает создание для него как минимум одной (первой) жесткой ссылки.

  • Особенности: Все жесткие ссылки абсолютно равноправны. Невозможно отличить «оригинальное» имя файла от дополнительной жесткой ссылки. При изменении файла через любую из ссылок модифицируются одни и те же данные на диске.

  • Удаление: При удалении ссылки (командой rm или unlink) операционная система просто уменьшает счетчик количества ссылок на файл. Данные будут физически удалены с жесткого диска только в том случае, когда будет удалена последняя жесткая ссылка, указывающая на этот файл.

  • Ограничения: Жесткие ссылки не могут указывать на каталоги (для предотвращения появления бесконечных циклов путей) и не могут применяться к файлам, находящимся на других файловых системах или логических разделах диска.

2. Символические ссылки (Symlinks, Soft links)

Символическая ссылка — это специальный тип файла, который не содержит реальных данных, а хранит в себе лишь текстовую строку с путем к оригинальному целевому файлу или каталогу. Это полный аналог привычных «ярлыков» в ОС Windows.

  • Создание: Осуществляется командой ln с добавлением ключа -s: ln -s <целевой_файл> <имя_ссылки>.

  • Особенности: У символической ссылки есть собственный inode и свой блок данных, в котором записан маршрут. Когда пользователь или программа обращается к такой ссылке, ядро операционной системы считывает путь и автоматически перенаправляет запрос к целевому файлу.

  • Удаление: Удаление символической ссылки приводит лишь к удалению самого «ярлыка», исходный файл остается нетронутым. Однако, если удалить оригинальный файл, символическая ссылка не исчезнет, но станет «битой» (нерабочей), так как путь внутри нее будет вести в никуда.

  • Преимущества: В отличие от жестких ссылок, символические позволяют ссылаться на каталоги и могут пересекать границы файловых систем (например, ссылаться на примонтированный внешний диск).

Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)   Короткая ссылка:
В операционной системе Linux один и тот же файл может существовать в системе под несколькими разными именами. Для реализации этой возможности используется механизм ссылок.

В Linux существует два типа ссылок: жесткие (hard links) и символические или мягкие (symbolic/soft links). Для создания ссылок обоих типов используется консольная утилита ln.

1. Жесткие ссылки (Hard links)

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

  • Создание: Осуществляется командой ln <исходный_файл> <файл_ссылки> (например, ln file.txt link1). Строго говоря, создание любого нового файла изначально означает создание для него как минимум одной (первой) жесткой ссылки.

  • Особенности: Все жесткие ссылки абсолютно равноправны. Невозможно отличить «оригинальное» имя файла от дополнительной жесткой ссылки. При изменении файла через любую из ссылок модифицируются одни и те же данные на диске.

  • Удаление: При удалении ссылки (командой rm или unlink) операционная система просто уменьшает счетчик количества ссылок на файл. Данные будут физически удалены с жесткого диска только в том случае, когда будет удалена последняя жесткая ссылка, указывающая на этот файл.

  • Ограничения: Жесткие ссылки не могут указывать на каталоги (для предотвращения появления бесконечных циклов путей) и не могут применяться к файлам, находящимся на других файловых системах или логических разделах диска.

2. Символические ссылки (Symlinks, Soft links)

Символическая ссылка — это специальный тип файла, который не содержит реальных данных, а хранит в себе лишь текстовую строку с путем к оригинальному целевому файлу или каталогу. Это полный аналог привычных «ярлыков» в ОС Windows.

  • Создание: Осуществляется командой ln с добавлением ключа -s: ln -s <целевой_файл> <имя_ссылки>.

  • Особенности: У символической ссылки есть собственный inode и свой блок данных, в котором записан маршрут. Когда пользователь или программа обращается к такой ссылке, ядро операционной системы считывает путь и автоматически перенаправляет запрос к целевому файлу.

  • Удаление: Удаление символической ссылки приводит лишь к удалению самого «ярлыка», исходный файл остается нетронутым. Однако, если удалить оригинальный файл, символическая ссылка не исчезнет, но станет «битой» (нерабочей), так как путь внутри нее будет вести в никуда.

  • Преимущества: В отличие от жестких ссылок, символические позволяют ссылаться на каталоги и могут пересекать границы файловых систем (например, ссылаться на примонтированный внешний диск).

https://webprogr.ru/~o4uPK
Короткая ссылка на новость:https://webprogr.ru/~o4uPK


Последние новости

Механизм ссылок

В операционной системе Linux один и тот же файл может существовать в системе под несколькими разными именами. Для реализации этой возможности используется механизм ссылок.

В Linux существует два типа ссылок: жесткие (hard links) и символические или мягкие (symbolic/soft links). Для создания ссылок обоих типов используется консольная утилита ln.

1. Жесткие ссылки (Hard links)

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

  • Создание: Осуществляется командой ln <исходный_файл> <файл_ссылки> (например, ln file.txt link1). Строго говоря, создание любого нового файла изначально означает создание для него как минимум одной (первой) жесткой ссылки.

  • Особенности: Все жесткие ссылки абсолютно равноправны. Невозможно отличить «оригинальное» имя файла от дополнительной жесткой ссылки. При изменении файла через любую из ссылок модифицируются одни и те же данные на диске.

  • Удаление: При удалении ссылки (командой rm или unlink) операционная система просто уменьшает счетчик количества ссылок на файл. Данные будут физически удалены с жесткого диска только в том случае, когда будет удалена последняя жесткая ссылка, указывающая на этот файл.

  • Ограничения: Жесткие ссылки не могут указывать на каталоги (для предотвращения появления бесконечных циклов путей) и не могут применяться к файлам, находящимся на других файловых системах или логических разделах диска.

2. Символические ссылки (Symlinks, Soft links)

Символическая ссылка — это специальный тип файла, который не содержит реальных данных, а хранит в себе лишь текстовую строку с путем к оригинальному целевому файлу или каталогу. Это полный аналог привычных «ярлыков» в ОС Windows.

  • Создание: Осуществляется командой ln с добавлением ключа -s: ln -s <целевой_файл> <имя_ссылки>.

  • Особенности: У символической ссылки есть собственный inode и свой блок данных, в котором записан маршрут. Когда пользователь или программа обращается к такой ссылке, ядро операционной системы считывает путь и автоматически перенаправляет запрос к целевому файлу.

  • Удаление: Удаление символической ссылки приводит лишь к удалению самого «ярлыка», исходный файл остается нетронутым. Однако, если удалить оригинальный файл, символическая ссылка не исчезнет, но станет «битой» (нерабочей), так как путь внутри нее будет вести в никуда.

  • Преимущества: В отличие от жестких ссылок, символические позволяют ссылаться на каталоги и могут пересекать границы файловых систем (например, ссылаться на примонтированный внешний диск).

Рейтинг@Mail.ru