Жесткие и символические ссылки в Linux: полное руководство

Ссылка в 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.

Что будем искать? Например,программа