LinuxОбъяснение технологий

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

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

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

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

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

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

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

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

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

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

Файл существует сообщение при создании символической ссылки в терминале на MacOS

Симлинки против стандартных ярлыков

Допустим, у вас есть определенная папка на жестком диске, которую вы хотите синхронизировать с Dropbox, не перемещая саму папку в Dropbox.

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

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

Имейте в виду, что, будь то обычный ярлык или символическая ссылка, его удаление никак не повлияет на исходный объект.

Зачем вам нужны ссылки?

В общем случае рекомендуется создавать символические ссылки вместо ярлыков, если вы хотите:

  • Доступ к файлу из нескольких мест без создания копий и не занимая много места на диске. (Символические ссылки имеют размер всего несколько байтов.)
  • Поддерживайте разные версии файла, одновременно следя за тем, чтобы любые указатели на него всегда приводили к самой последней или актуальной версии. (Это работает, потому что символическая ссылка остается активной, даже если вы заменяете целевой файл другим файлом с тем же именем.)
  • Переместите данные со своего диска C: \, скажем, на дополнительный жесткий диск, не нарушая работу системы или функций приложения, которым эти данные должны быть на диске C: \.

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

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

Вы можете создавать программные ссылки, используя терминал или командную строку. Мы перейдем к инструментам «укажи и щелкни» позже, если тебе неудобно возиться с терминалом.

В Linux и MacOS

Терминальная команда для создания символической ссылки в macOS

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

ln -s [/path/to/file] [/path/to/symlink] 

Эта же команда работает и в macOS, поскольку macOS — это операционная система на основе UNIX, такая как Linux.

Смотрите скриншот выше для примера команды.

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

У популярного файлового менеджера Nautilus, поставляемого в комплекте с различными дистрибутивами Linux, была опция меню Make Link , которая теперь исчезла. Но вы все равно можете создать символическую ссылку в Nautilus, удерживая клавиши Ctrl и Shift и перетащив целевой файл в то место, где вы хотите, чтобы символическая ссылка отображалась. Не волнуйтесь, исходный файл останется на месте.

На винде

Вам нужно открыть окно командной строки от имени администратора и ввести следующую команду, чтобы создать символическую ссылку:

 mklink [/path/to/symlink] [/path/to/file] 

Для символических ссылок на каталоги вы должны немного настроить команду, используя флаг / d :

 mklink /d [/path/to/symlink] [/path/to/file] 

Если вы не хотите работать с командной строкой, вы можете использовать графический инструмент под названием Link Shell Extension для создания символических ссылок. Это одно из лучших расширений Windows File Explorer для управления файлами .

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

Симлинки против псевдонимов в macOS

Симлинк и псевдоним для файла в Finder на macOS

Если вы когда-либо создавали псевдонимы в macOS, вы заметите, что они ведут себя почти как символические ссылки. Оба типа ссылок ссылаются на путь к связанному файлу или папке.

Разница в том, что псевдоним также помечает связанный объект с идентификатором, называемым inode (индексный узел). Этот идентификатор уникален для объекта и следует за ним по всей файловой системе.

Вот почему псевдоним будет работать нормально, даже если вы переместите его цель в другое место. Попробуйте это с символической ссылкой, и вы столкнетесь с ошибкой. (Вы можете без проблем перемещать псевдоним и символическую ссылку, если только вы не имеете дело с файлами, защищенными системой.)

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

Не можете определить разницу между псевдонимом и символической ссылкой, поскольку вы удалили тег псевдонима из имени файла псевдонима?

Откройте инспектор файлов или панель « Информация» для каждого ярлыка и посмотрите размер файла в разделе « Общие ». Если это говорит (ноль байтов на диске) , вы имеете дело с символической ссылкой.

Символьные ссылки (в текущей папке) также проявятся при использовании этой команды терминала:

 ls -la 

Команда работает и в Linux, и вы увидите символическую ссылку, указывающую на местоположение исходного объекта.

Симлинки лучше, чем ярлыки

Поначалу символические ссылки могут показаться запутанными, но если вы потратите время на их понимание, вы поймете, что в конце концов их довольно просто использовать!

Вы даже можете создавать символические ссылки на Android с помощью Termux , приложения, которое позволяет вам использовать командную строку Linux . И знаете ли вы, что вы можете легко обмениваться файлами на Google Диске с помощью символических ссылок? ?

Похожие посты
Linux

8 лучших окружений рабочего стола Linux

AndroidIphone и ipadLinuxWindows

Окончательное руководство по включению темного режима везде

LinuxКак сделать

Что такое Swappiness в Linux? (и как это изменить)

LinuxКак сделать

Как использовать команду ls для вывода списка файлов и каталогов в Linux