Линукс не имеет ярлыков, но имеет символические ссылки – или символические ссылки, как их обычно называют. Но что такое символические ссылки? И как его создать? Давайте выясним.
Мы будем опробовать команды на установка Ubuntu, хотя синтаксис работает одинаково на все дистрибутивы Linux. Интересно, символические ссылки также можно создавать на ПК Mac..
Что такое символические ссылки?
Если вы хотите иметь доступ к файлу из нескольких мест, простое копирование — не лучшее решение. Вы зря тратите дисковое пространство, не говоря уже о том, что усложняете отслеживание изменений из-за наличия нескольких файлов.
В операционной системе с графическим интерфейсом эту проблему можно решить, создав ярлыки. Для ОС на основе CUI (например, любой дистрибутив Linux ) ответом является символическая ссылка. Даже Microsoft Windows может использовать символические ссылки в некоторые ситуации.
Символическая или символическая ссылка — это просто файл, указывающий на другой файл или каталог — даже в совершенно другой файловой системе или разделе. Открытие символической ссылки дает вам доступ к тому же исходному файлу, причем любые изменения также отражаются в основном файле.
Это также относится и к разрешениям: использование chmod для изменения разрешений файла символической ссылки фактически изменит разрешения целевого файла.
Типы символических ссылок
Символические ссылки также называются программными ссылками. Как следует из названия, это не единственный тип файловой системы в Linux. Жесткие ссылки могут использоваться в качестве альтернативы символическим ссылкам в определенных сценариях, однако имеют ряд ограничений.
Начнем с того, что жесткие ссылки— это просто имена файлов, указывающие на один и тот же индексный дескриптор. Хотя это делает их очень эффективными с точки зрения хранения и скорости доступа, это также ограничивает их использование файлами в одной файловой системе или разделе. А из-за особенности how folder access works in Линукс вы также не можете использовать жесткие ссылки для каталогов.
С другой стороны,Мягкие или символические ссылкибольше похожи на ярлыки на рабочем столе. Каждая мягкая ссылка — это, по сути, небольшой файл, который указывает на исходные данные, но на самом деле не связан с ними напрямую. Это означает, что мягкие ссылки могут легко указывать на файлы и каталоги в других разделах и файловых системах без каких-либо ограничений.
Жесткие ссылки или мягкие ссылки – какой тип использовать?.
Мягкие ссылки — наиболее универсальная форма ссылок, поскольку их можно использовать как для файлов, так и для каталогов в нескольких файловых системах без каких-либо ограничений. Но почему тогда у нас вообще есть жесткие ссылки? Дают ли они вам какие-либо преимущества перед символическими ссылками?
Ну, на бумаге жесткие ссылки более эффективны. Поскольку они используют одни и те же индексные дескрипторы, они не занимают дополнительного дискового пространства, и доступ к ним осуществляется гораздо быстрее, чем к программным ссылкам. Вот почему многие системные администраторы рекомендуют при любой возможности использовать жесткие ссылки.
Однако минусы использования символических ссылок минимальны. Современные компьютеры особенно не заботятся о нескольких килобайтах дополнительной памяти, и если вы не заполняете систему миллионами программных ссылок, дополнительный размер файла редко имеет значение.
Создание символических ссылок
Символические ссылки – а точнее, ссылки на файлы в целом – создаются с помощью команды ln. По умолчанию команда создает жесткие ссылки. Чтобы создать символическую ссылку, вам необходимо добавить флаг -s к команде ln.
Синтаксис достаточно прост. Команда ln принимает два параметра — путь к файлу (или папке), на который нужно создать ссылку, и путь к создаваемому файлу ссылки.
Вот так:
ln -s user_names.txt имена
Это создаст символическую ссылку с именем Names, связанную с текстовым файлом user_names. Чтобы узнать, действительно ли была создана символическая ссылка, просто используйте команду ls.
Как видите, Ubuntu отображает разные цвета для разных категорий файлов: каталоги обозначены темно-синим цветом, а символические ссылки — более светлым синим цветом (фактически голубым).
Мы можем использовать тот же синтаксис и для создания символической ссылки на папку:
ln -s примеры example_folder
Для создания символических ссылок на файлы и папки в других каталогах просто используйте их полный путь. Например:
ln -s example/example3.txt distance_example
Ограничения символических ссылок
Символические ссылки — отличный способ соединения файлов в вашей системе без необходимости копирования, однако они имеют свои ограничения. Да, хотя мягкие ссылки менее ограничительны, чем жесткие, все же есть некоторые вещи, о которых следует помнить..
Во-первых, команда ln фактически не проверяет созданные ссылки. Это означает, что можно ввести имя файла, которого на самом деле не существует, и вы не получите никаких ошибок. Единственный способ подтвердить ссылку — попробовать использовать ее и посмотреть, ведет ли она к нужному файлу.
Во-вторых, хотя доступ к символической ссылке или изменение разрешений изменяет свойства исходного файла, этого не происходит при удалении файла. Вы можете безопасно удалить символическую ссылку не затрагивать связанный файл или каталог.
Создание символических ссылок в Linux
Самая большая проблема при использовании терминала для создания символических ссылок — это сложность доступа к важным файлам, разбросанным по различным каталогам. Разумное решение — создать символические ссылки на такие файлы из вашего домашнего каталога, например ярлыки на рабочем столе.
И в отличие от жестких ссылок, символические ссылки можно легко создавать без каких-либо ограничений, даже для подключения к каталогам или файлам в разных разделах и файловых системах. Имейте в виду, что это также означает, что символическая ссылка может указывать на несуществующий файл — вам придется попытаться получить доступ к ссылке, чтобы проверить, существует ли файл.
.