В операционной системе 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 и свой блок данных, в котором записан маршрут. Когда пользователь или программа обращается к такой ссылке, ядро операционной системы считывает путь и автоматически перенаправляет запрос к целевому файлу.
Удаление: Удаление символической ссылки приводит лишь к удалению самого «ярлыка», исходный файл остается нетронутым. Однако, если удалить оригинальный файл, символическая ссылка не исчезнет, но станет «битой» (нерабочей), так как путь внутри нее будет вести в никуда.
Преимущества: В отличие от жестких ссылок, символические позволяют ссылаться на каталоги и могут пересекать границы файловых систем (например, ссылаться на примонтированный внешний диск).
В операционной системе 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 и свой блок данных, в котором записан маршрут. Когда пользователь или программа обращается к такой ссылке, ядро операционной системы считывает путь и автоматически перенаправляет запрос к целевому файлу.
Удаление: Удаление символической ссылки приводит лишь к удалению самого «ярлыка», исходный файл остается нетронутым. Однако, если удалить оригинальный файл, символическая ссылка не исчезнет, но станет «битой» (нерабочей), так как путь внутри нее будет вести в никуда.
Преимущества: В отличие от жестких ссылок, символические позволяют ссылаться на каталоги и могут пересекать границы файловых систем (например, ссылаться на примонтированный внешний диск).