Linux mint символьные ссылки

Символические и жесткие ссылки Linux

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

В Linux существует два типа ссылок на файлы. Это символические и жесткие ссылки Linux. Они очень сильно отличаются и каждый тип имеет очень важное значение. В этой небольшой статье мы рассмотрим чем же отличаются эти ссылки, зачем они нужны, а также как создавать ссылки на файлы в Linux.

Символические ссылки

Символические ссылки более всего похожи на обычные ярлыки. Они содержат адрес нужного файла в вашей файловой системе. Когда вы пытаетесь открыть такую ссылку, то открывается целевой файл или папка. Главное ее отличие от жестких ссылок в том, что при удалении целевого файла ссылка останется, но она будет указывать в никуда, поскольку файла на самом деле больше нет.

Вот основные особенности символических ссылок:

  • Могут ссылаться на файлы и каталоги;
  • После удаления, перемещения или переименования файла становятся недействительными;
  • Права доступа и номер inode отличаются от исходного файла;
  • При изменении прав доступа для исходного файла, права на ссылку останутся неизменными;
  • Можно ссылаться на другие разделы диска;
  • Содержат только имя файла, а не его содержимое.

Теперь давайте рассмотрим жесткие ссылки.

Жесткие ссылки

Этот тип ссылок реализован на более низком уровне файловой системы. Файл размещен только в определенном месте жесткого диска. Но на это место могут ссылаться несколько ссылок из файловой системы. Каждая из ссылок — это отдельный файл, но ведут они к одному участку жесткого диска. Файл можно перемещать между каталогами, и все ссылки останутся рабочими, поскольку для них неважно имя. Рассмотрим особенности:

  • Работают только в пределах одной файловой системы;
  • Нельзя ссылаться на каталоги;
  • Имеют ту же информацию inode и набор разрешений что и у исходного файла;
  • Разрешения на ссылку изменяться при изменении разрешений файла;
  • Можно перемещать и переименовывать и даже удалять файл без вреда ссылке.

Использование ссылок в Linux

Теоретические отличия вы знаете, но осталось закрепить все это на практике, поэтому давайте приведем несколько примеров работы со ссылками в Linux. Для создания символических ссылок существует утилита ln. Ее синтаксис очень прост:

$ ln опции файл_источник файл_ссылки

Рассмотрим опции утилиты:

  • -d — разрешить создавать жесткие ссылки для директорий суперпользователю;
  • -f — удалять существующие ссылки;
  • -i — спрашивать нужно ли удалять существующие ссылки;
  • -P — создать жесткую ссылку;
  • -r — создать символическую ссылку с относительным путем к файлу;
  • -s — создать символическую ссылку.
Читайте также:  Российский linux дистрибутив 2021

Создание символических ссылок

Сначала создайте папку test и перейдите в нее:

mkdir test && cd test

Затем создайте файл с именем source с каким-либо текстом:

echo «текст текст текст текст» > source
$ cat source

Файл готов, дальше создадим символическую ссылку Linux, для этого используется команда ln с опцией -s:

ln -s source softlink

Попробуем посмотреть содержимое файла по ссылке:

Как видите, нет никакой разницы между ней и исходным файлом. Но утилита ls покажет что это действительно ссылка:

Несмотря на то, что содержимое одинаковое, здесь мы видим, что адрес иноды и права доступа к файлам отличаются, кроме того, явно показано что это символическая ссылка Linux.

Теперь удалите исходный файл и посмотрите что будет:

Вы получите ошибку, что такого файла не существует, потому что мы действительно удалили исходный файл. Если вы удалите ссылку, то исходный файл останется на месте.

Создание жестких ссылок

Снова создайте файл source с произвольным текстом:

echo «текст текст текст текст» > source
$ cat source

Теперь создадим жесткую ссылку Linux. Для этого достаточно вызвать утилиту без параметров:

ln source hardlink

Посмотрите содержимое файла:

Данные те же самые, а если мы посмотрим вывод утилиты ls, то увидим что inode и права доступа тоже совпадают:

Если для одного из файлов поменять разрешения, то они изменяться и у другого. Теперь удалите исходный файл:

Затем посмотрите содержимое:

Как видите, ничего не произошло и ссылка по-прежнему указывает на нужный участок диска, это главное отличие жесткой ссылки от символической. Мы можем сделать вывод, что жесткая ссылка linux это обычный файл. Каждый файл имеет как минимум одну ссылку, но для некоторых мы можем создать несколько ссылок.

Выводы

Это все, что вам было необходимо знать про символические и жесткие ссылки linux. Надеюсь, вы получили общее представление об этих возможностях файловой системы и сможете использовать их для решения своих задач.

На завершение видео про ссылки в Linux:

Источник

linux-notes.org

Хотелось бы рассказать как можно создавать ссылки (симлинки) в ОС Unix/Linux. В своей теме «Создание ссылок (symlink) в Unix/Linux» я на готовом примере покажу как это делается. Существуют несколько видов ссылок, и я расскажу в чем разница между ними.

Симлинк или мягкая ссылка представляет собой особый тип файла, который содержит ссылку на другой файл или каталог в виде абсолютного или относительного пути.

Жёсткой ссылкой — это структурная составляющая файла которая описывает его элемент каталога.

В этом подразделе, я расскажу какие бывают симлинки и в чем они отличаются.

Мягкая ссылка (Soft link):

  1. Мягкие ссылки используют различные номера инод чем основные файлы.
  2. Мягкие ссылки становится полезными, если исходный файл был удален.
  3. Мягкие ссылки могут быть созданы из каталогов.
  4. Мягкая ссылка может быть создана на пересечении файловых систем.

Для того чтобы создать симлинк в линукс используется следующая команда:

И так, я создал симлинк linux-notes.org.conf на на тот же файл но который будет расположен в другой директории. После создания симлинка, необходимо сменить права на него:

Для проверки номера иноды:

Я создал симлинк на файл, так же, можно создавать симлинка на целую папку, для этого используйте:

Читайте также:  Sql server совместимость версий с windows

И так, я создал симлинк symlink-to-opt-dir на папку /opt/directory. После создания симлинка, необходимо сменить права на него:

Вот и все, очень просто, и полезно.

Для проверки номера иноды:

Чтобы удалить, используйте:

И аналогично для каталогов.

Если вы удалите мягкую ссылку (/home/captain/linux-notes.org-softlink.txt), то сам файл данных будет по-прежнему находится там же (/home/captain/linux-notes.org.txt). Тем не менее, если вы удалите /home/captain/linux-notes.org.txt, то /home/captain/linux-notes.org-softlink.txt станет сломанной ссылкой и данные будут потеряны.

Жесткие ссылки (Hard Links):

  1. Жесткие ссылки использует тот же номер иноды что и основные файлы.
  2. Нельзя создать жесткие ссылки на каталоги.
  3. Жесткие ссылки не могут быть созданы на пересечении файловых систем.
  4. Жесткие ссылки всегда относится к источнику, даже если они перемещаются или удаляется.

Чтобы создать «жесткую ссылку», используйте:

Проверяем номер иноды:

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

Если вы удалите жесткую ссылку, ваши данные будут там. Если вы удалите /home/captain/linux-notes.org.txt то файл будет по-прежнему доступен через жесткую ссылку

Жесткие ссылки (Hardlink) vs Мягкие ссылки (Softlink) в UNIX/Linux

  • Как я говорил ранее, жесткие ссылки не могут быть созданы для директорий.
  • Жесткие ссылки не могут использоваться на пересечении границ файловых систем ( Нельзя создать сылку /tmp и примонтированную на /tmp ко 2-му HDD который смонтирован на/harddisk2).
  • Символические ссылки (мягкие ссылки) ссылаются на символичный путь с указанием абстрактного расположение другого файла.
  • Жесткие ссылки, ссылаются к определенному местоположению физических данных.

На этом, моя тема «Создание ссылок (symlink) в Unix/Linux» завершена. Не сильно сложная тема, но очень полезная.

Источник

Что Такое Символическая Ссылка и Как Создать Симлинк в Linux

Команды Linux, связанные с символическими ссылками, прекрасно дополнят ваш инструментарий для работы в терминале. В этом руководстве мы рассмотрим несколько быстрых и простых команд. Но прежде чем мы начнём, давайте разберёмся, что же такое символическая ссылка.

Что Такое Символическая Ссылка?

Символические ссылки служат не только для создания ярлыков и управления файлами в операционной системе Linux. Они также создают место под основные пользовательские папки, такие как «Документы», «Изображения», «Загрузки» и другие.

Символические ссылки позволяют создавать и хранить несколько файлов в разных местах компьютерной системы, при этом вести к ним будет один файл. Такой принцип работы напоминает ярлыки в Windows. Символическая ссылка повышает общую продуктивность работы, поскольку предоставляет доступ к документам одной командой.

Эти ссылки хранятся в мейнфрейме, поэтому даже если исходный файл будет удалён, у вас останется резервная копия большинства важных файлов. В отличие от жестких ссылок, которые всегда ссылаются на существующий файл, символические ссылки могут содержать ни на что не указывающий путь.

Функции Linux настолько удобны, что даже Microsoft перенял их практику создания символических ссылок. Однако символическая ссылка, также известная как мягкая ссылка, или симлинк, не является уникальным явлением, характерным исключительно Linux. Они напоминают поиск в Windows, когда для того, чтобы найти файл или каталог, пользователь выполняет различные команды.

Как Создать Символическую Ссылку в Linux

Итак, давайте разберёмся, как создать символические ссылки на файлы и папки в Linux.

Читайте также:  Все командные интерпретаторы linux

Символическая Ссылка Linux на Файлы

Обычно для создания ссылок мы используем команду ln и опцию -s, чтобы указать символическую ссылку. Это самый простой и гибкий способ, который позволяет максимально экспериментировать с языком. В создании символических ссылок в Linux нет ничего сложного — нужно просто выполнить один простой шаг.

Команда ln в Linux создает ссылки между исходными файлами и каталогами.

  • -s — команда для символических ссылок.
  • [целевой файл] — имя существующего файла, для которого вы создаёте ссылку.
  • [имя символической ссылки] — эта часть команды объясняет сама себя.

Проверить создалась ли ссылка можно с помощью команды вывода подробного списка содержимого каталога:

Однако, если вы не укажете [имя символической ссылки], команда автоматически создаст новую ссылку в существующем каталоге.

Символическая Ссылка Linux на Папки

Создать символическую ссылку на каталог тоже довольно просто. Синтаксис команды для создания символической ссылки на папку похож на команду для создания ссылки на файл:

Допустим, мы хотим связать каталог /user/local/downloads/logo с каталогом /devisers , вот как будет выглядеть команда:

Созданная и прикреплённая к папке /devisers , символическая ссылка будет вести к /user/local/downloads/logo . Когда пользователь меняет каталог — cd — на /devisers , система автоматически переключается на определённый файл и записывает его в каталог команды.

Опции символических ссылок называются переключателями командной строки. Вот наиболее распространённые из них и их описания:

Переключатель Описание
–backup[=CONTROL] резервное копирование каждого существующего файла назначения
-d, -F, –directory суперпользователь может использовать жесткую ссылку
-f, –force удаляет существующий файл назначения
-I, –interactive спрашивает перед удалением файлов назначения
-L, –logical разыменовывает символические ссылки
-n, –non-dereference обрабатывает символическую ссылку как обычный файл, если это символическая ссылка на каталог
-P, –physical делает жесткие ссылки непосредственно на символические ссылки, а не разыменовывает их.
-r, –relative создаёт символические ссылки относительно расположения ссылок
-s, –symbol создаёт символические ссылки вместо жестких ссылок
-S, –suffix=SUFFIX переопределяет обычный суффикс резервных копий
-v, –verbose выводит имя каждого файла при создании ссылки

Как Изменить или Удалить Символическую Ссылку в Linux?

Вы можете удалить существующие ссылки, прикреплённые к файлам или каталогам, с помощью команды unlink или rm. Вот как вы можете сделать это с помощью команды unlink:

Аналогичным образом удаляем символическую ссылку с помощью команды rm:

Помните, что если источник больше не находится в текущем местоположении, вам следует удалить символические файлы, чтобы избежать создания дубликатов, которые могут замедлить работу.

Итоги

Linux — замечательная платформа для разработки интерактивного и динамичного приложения, где вы можете экспериментировать и пробовать что-то новое. Но для этого вам нужна прочная база. Изучите основы языка, чтобы использовать весь потенциал платформы.

В этом руководстве вы узнали, что такое символическая ссылка и как её использовать. Это лишь азы, продолжайте учиться, чтобы освоить ещё много полезных инструментов!

Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.

Источник

Оцените статью