Поиск по сайту:

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


В Unix-подобных операционных системах, таких как Linux, «все является файлом», а файл по сути является ссылкой на индексный дескриптор (структуру данных, которая хранит все о файле, кроме его имени и фактического содержимого).

Жесткая ссылка — это файл, который указывает на тот же базовый индексный дескриптор, что и другой файл. Если вы удалите один файл, будет удалена одна ссылка на базовый индексный дескриптор. Принимая во внимание, что символическая ссылка (также известная как мягкая ссылка) — это ссылка на другое имя файла в файловой системе.

Читайте также: как осуществлять управление файлами и каталогами

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

Как создать жесткие ссылки в Linux

Для создания жестких ссылок в Linux мы будем использовать утилиту ln. Например, следующая команда создает жесткую ссылку с именем tp на файл topprocs.sh.

ls -l
ln topprocs.sh tp
ls -l

Глядя на вывод выше, используя команду ls, новый файл не отображается как ссылка, он отображается как обычный файл. Это означает, что tp — это просто еще один обычный исполняемый файл, который указывает на тот же базовый индексный дескриптор, что и topprocs.sh.

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

ln -P topprocs.sh tp

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

Чтобы создать символические ссылки в Linux, мы будем использовать ту же утилиту ln с переключателем -s. Например, следующая команда создает символическую ссылку с именем topps.sh на файл topprocs.sh.

ln -s ~/bin/topprocs.sh topps.sh
ls -l topps.sh

Из приведенного выше вывода в разделе прав доступа к файлу вы можете видеть, что topps.sh — это ссылка, обозначенная l:, что означает, что это ссылка на другое имя файла.

Если символическая ссылка уже существует, вы можете получить сообщение об ошибке. Чтобы принудительно выполнить операцию (удалить выходящую символическую ссылку), используйте опцию -f.

ln -s ~/bin/topprocs.sh topps.sh
ln -sf ~/bin/topprocs.sh topps.sh

Чтобы включить подробный режим, добавьте флаг -v, чтобы печатать имя каждого связанного файла в выходных данных.

ln -sfv ~/bin/topprocs.sh topps.sh
$ls -l topps.sh

Вот и все! Обязательно ознакомьтесь со следующими статьями по теме.

  1. fdupes — инструмент командной строки для поиска и удаления повторяющихся файлов в Linux
  2. 5 полезных команд для управления типами файлов и системным временем в Linux

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