Как создавать жесткие и символические ссылки в 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
Вот и все! Обязательно ознакомьтесь со следующими статьями по теме.
- fdupes — инструмент командной строки для поиска и удаления повторяющихся файлов в Linux
- 5 полезных команд для управления типами файлов и системным временем в Linux
В этой статье мы узнали, как создавать жесткие и символические ссылки в Linux. Вы можете задать любые вопросы или поделиться своими мыслями об этом руководстве через форму обратной связи ниже.