Когда будут полезны программные ссылки?
вас есть файл, вложенный в несколько уровней каталогов. Чтобы легко получить доступ к этому файлу, вам нужно создать ярлык для этого файла на рабочем столе. Можно использовать символическую ссылку (также известную как мягкая ссылка). Существует также другая форма ссылки, известная как жесткая ссылка. В этой статье мы объясним разницу между мягкими и жесткими ссылками и рассмотрим, какую из них следует использовать.Мягкие и жесткие ссылки
Мягкая ссылка или символическая ссылка — это просто символическая ссылка. Это просто указатель на целевой путь к файлу. Мягкую ссылку не волнует, действительно ли существует файл или папка по указанному пути. Если файл или папка не существует, это просто приведет к неработающей символической ссылке. Вы можете редактировать или удалять символ
Contents
Мягкие и жесткие ссылки
т на целевой файл.С другой стороны, жесткая ссылка дает целевому файлу дополнительное имя. Когда вы редактируете содержимое одного файла, оно также изменяет содержимое другого файла. Короче говоря, мягкая ссылка — это просто ссылка на целевой путь к файлу, а жесткая ссылка — это прямая ссылка на данные целевого файла.
Ниже мы покажем, как работают мягкие и жесткие ссылки.
Мягкие ссылки в действии
Предположим, у нас есть файл с именем «first_file.txt», содержащий четыре строки текста.
Мы создадим программную ссылку в нашем домашнем каталоге.
ln -s first_file.txt ~/sl-firstfile.txt
В среде рабочего стола GNOME программную ссылку для файла можно создать, просто щелкнув файл правой кнопкой мыши и выбрав «Создать ссылку». Создается мягкая ссылка с именем, похожим на «Ссылка на <имя_файла>.txt».
Если мы попытаемся просмотреть содержимое «sl-firstfile.txt», мы увидим, что оно совпадает с «first_file.txt».
Если мы посмотрим на эти два файла в диспетчере файлов, программная ссылка появится как ярлык к исходному файлу. Об этом свидетельствует черная стрелка на значке файла.
Когда мы пытаемся просмотреть список текущего каталога с помощью команды ls -l
, вы можете увидеть, где программная ссылка указывает на целевой файл. Первый символ в строке разрешения для «sl-firstfile.txt» — «l», что означает, что эта запись предназначена для ссылки.
Читайте также: Как управлять символическими ссылками в Linux
Поведение при удалении программных ссылок
Когда целевой файл будет удален, программная ссылка останется.
Однако ссылка стала «висячей» или «сломанной» и стала бесполезной.
Теперь, если вы создадите еще один файл с тем же именем — «first_file.txt» — программная ссылка снова станет активной.
Примечание. Если вы столкнулись с программными ссылками и хотите найти абсолютный путь к файлу, для которого создана ссылка, просто используйте команду readlink
, как показано ниже..
Выводом этой команды будет абсолютный путь к исходному файлу.
Жесткие ссылки в действии
Теперь мы создадим жесткую ссылку на тот же файл в нашем домашнем каталоге. Это можно сделать с помощью следующей команды:
ln first_file.txt hl-first-file.txt
Примечание : оба метода создания мягкой и жесткой ссылки используют команду ln
. Единственное отличие — это флаг -s
, обозначающий символическую ссылку.
Другой способ создать жесткую ссылку — использовать команду link
.
link hl-firstfile.txt hl2-firstfile.txt
Проверка обоих файлов показывает, что их содержимое одинаково.
В графическом интерфейсе оба файла отображаются как отдельные объекты. Нет никаких указаний на наличие жесткой ссылки.
Давайте попробуем добавить новую строку в файл жесткой ссылки «hl-firstfile.txt».
echo "hello" >> hl-first-file.txt
Изменение данных можно просмотреть в обоих файлах.
При создании жесткой ссылки создается впечатление, что существуют два разных файла, но их данные связаны. Изменение одного отражается на другом.
Совет. При создании программных и жестких ссылок рекомендуется использовать то же расширение, что и у файла, для которого создается ссылка.
Поведение при удалении жестких ссылок
Для жестких ссылок удаление исходного файла или жесткой ссылки не является проблемой. Данные, которые изначально хранились в файле, по-прежнему доступны по жесткой ссылке.
КогЖесткие ссылки в действии
и?
Мы заметили, что программные ссылки отображаются как ярлыки для файла. Если у нас есть файл в нескольких слоях каталогов и мы хотим сохранить его в месте, к которому будет легко получить доступ, хорошим вариантом будет просто создать для него короткую ссылку.
Когда будут полезны жесткие ссылки?
Мы видели, что после создания жесткой ссылки для файла любые изменения в файле или жесткой ссылке отражаются в обоих случаях.
Предположим, у вас есть резервный сервер. Используется механизм инкрементального резервного копирования, при котором отражаются только изменения в файлах/папках с момента последнего резервного копирования. Вы можете создать жесткую связь между файлом на сервере и соответствующей копией на компьютере. При резервном копировании изменения файла на компьютере автоматически отражаются в соответствующем жестко связанном файле на сервере, даже если файлы меняют имя.
Заключение
И мягкие, и жесткие ссылки имеют свое применение и их следует использовать в разных ситуациях. Понимание их различий позволит вам принимать более обоснованные решения при создании ссылок. Для каталогов также можно создавать мягкие и жесткие ссылки. Хотя мягкие ссылки можно создавать в разных файловых системах, жесткие ссылки можно создавать только внутри одной файловой системы.