Ссылка в Linux – это специальный файл, указывающий на другой файл или директорию. Существуют два основных типа ссылок: жесткие и символические. Команда ls -l выведет список файлов с информацией о них, включая ссылки, которые обозначаются символом l в начале строки и стрелочкой ->, указывающей на целевой файл. Например, ch -> dash означает, что ch – это ссылка на файл dash. Ссылки можно отфильтровать командой grep: grep "l " (для символа l) или grep "->" (для стрелочки ->, обратный слеш экранирует символ -).
Жесткие и символические ссылки: сравнение
Рассмотрим различия между жесткими и символическими ссылками. Команда ls -l показывает различия в правах доступа и размерах между ссылкой и целевым файлом для символической ссылки. Символическая ссылка – это просто указатель на целевой файл; можно создавать множество символических ссылок, указывающих на один и тот же файл.
Для жесткой ссылки обратите внимание на количество ссылок, указанное в выводе ls -l. Число перед именем файла показывает количество жестких ссылок на этот файл. Файлы с более чем одной ссылкой можно найти командой grep. Жесткие ссылки имеют одинаковые права доступа, размер и дату последнего изменения.
Для проверки можно использовать опцию -i в команде ls, которая отображает номера i-узлов. Жесткие ссылки имеют одинаковые номера i-узлов, что подтверждает, что они указывают на один и тот же участок данных на диске. Изменение через одну жесткую ссылку отразится на всех остальных.
Ключевые различия
- Жесткие ссылки:
- Указывают непосредственно на данные файла.
- Имеют одинаковые права доступа, размер, дату изменения и номер i-узла.
- Удаление одной жесткой ссылки не удаляет данные, пока существуют другие ссылки.
- Символические ссылки:
- Указывают на имя файла.
- Могут иметь различные права доступа, размер и дату изменения по сравнению с целевым файлом.
- Удаление символической ссылки не влияет на целевой файл.
Создание ссылок
Создание собственных жестких и символических ссылок будет рассмотрено в отдельном уроке.
В этом руководстве рассмотрены основные различия между жесткими и символическими ссылками в Linux. Жесткие ссылки предоставляют альтернативный путь доступа к существующим файлам, в то время как символические ссылки – это указатели на файлы или директории. Понимание этих различий важно для эффективной работы с файловой системой Linux.