Как создавать и использовать символические ссылки (симлинки) на Mac
Опубликовано: 2023-04-14ln -s /путь/к/исходному /путь/к/ссылке
Символические ссылки, также известные как символические ссылки, представляют собой специальные файлы, указывающие на файлы или каталоги в других местах вашей системы. Вы можете думать о них как о расширенных псевдонимах, и вот как их использовать в macOS.
Что такое символические ссылки?
Создание символических ссылок с помощью команды ln
Как удалить символические ссылки
Как создавать символические ссылки с помощью графического инструмента
Что такое символические ссылки?
В macOS вы можете создавать обычные псевдонимы в Finder. Псевдонимы указывают на файлы или папки, которые больше похожи на простые ярлыки.
Символическая ссылка — это более продвинутый тип псевдонима, который работает во всех приложениях системы, включая утилиты командной строки в терминале. Символическая ссылка, которую вы создаете, выглядит для приложений так же, как исходный файл или папка, на которую она указывает, даже если это просто ссылка.
Они работают так же, как символические ссылки в Linux, поскольку и macOS, и Linux являются UNIX-подобными операционными системами. Пользователи ПК также могут использовать символические ссылки, но символические ссылки в Windows работают немного по-другому.
Допустим, у вас есть приложение, которому нужны файлы, хранящиеся в /Library/App, которые вы хотите сохранить где-то еще в системе, например, в /Volumes/App. Вы можете переместить каталог App в /Volumes/App, а затем создать символическую ссылку в /Library/App, указывающую на /Volumes/App. Программа попытается получить доступ к своей папке в /Library/App, а операционная система перенаправит ее в /Volumes/App.
Смущенный? Давайте посмотрим на реальный пример. Допустим, у вас есть много игр Steam, занимающих место на основном разделе Mac, которые вы хотите вместо этого хранить на внешнем диске. По умолчанию эти файлы хранятся в «/Users/chris/Library/Application Support/Steam/steamapps». Во-первых, переместите каталог «steamapps» на внешний диск с именем «Data», который имеет путь «/Volumes/Data».
Чтобы завершить процедуру, создайте символическую ссылку, указывающую на новое расположение файлов (это «/Volumes/Data/steamapps») в каталоге «/Users/tim/Library/Application Support/Steam/». Для Steam и любого другого процесса символическая ссылка выглядит как обычная папка, как будто оригинал никогда не перемещался. На самом деле эти файлы хранятся в другом месте, и символическая ссылка работает как очень убедительный указатель.
Это полностью прозрачно для операционной системы macOS и используемых вами приложений. Это позволяет вам перемещать файлы для вашего удобства и особенно удобно, если у вас есть только ограниченное пространство на внутреннем диске. Вы можете перемещать свою символическую ссылку, и она будет указывать на исходный файл.
В дополнение к символическим ссылкам, которые иногда называют «мягкими ссылками», вместо этого вы можете создавать «жесткие ссылки». Символическая или программная ссылка указывает на путь в файловой системе. Например, предположим, что у вас есть символическая или программная ссылка из /Users/example, указывающая на /opt/example. Если вы переместите файл в /opt/example, ссылка в /Users/example будет нарушена. Однако, если вы создадите жесткую ссылку, она фактически будет указывать на базовый inode в файловой системе. Таким образом, если вы создали жесткую ссылку из /Users/example, указывающую на /opt/example, а затем переместили /opt/example, ссылка в /Users/example все равно будет указывать на файл, независимо от того, куда вы ее переместили. Жесткая ссылка работает на более низком уровне.
Обычно вам следует использовать стандартные символические ссылки (мягкие ссылки), если вы не знаете, что использовать. Жесткие ссылки имеют некоторые ограничения. Например, вы не можете создать жесткую ссылку на одном разделе или диске, указывающую на расположение на другом разделе или диске, в то время как вы можете сделать это с помощью стандартной символической ссылки.
Создание символических ссылок с помощью команды ln
Чтобы создать символическую ссылку на Mac, вам нужно использовать приложение «Терминал».
Нажмите Command + Space, введите «Терминал», а затем нажмите «Ввод», чтобы открыть Терминал из поиска Spotlight. Перейдите в Finder > Приложения > Утилиты > Терминал, чтобы запустить Терминал.
Запустите команду ln
в следующей форме. Вы можете указать либо путь к каталогу, либо файлу:
ln -s /путь/к/исходному /путь/к/ссылке
Здесь -s
указывает команде ln создать символическую ссылку. Если вы хотите создать жесткую ссылку, вы должны опустить -s
. В большинстве случаев символические ссылки являются лучшим выбором, поэтому не создавайте жесткую ссылку, если у вас нет для этого особой причины.
Вот пример. Предположим, вы хотите создать символическую ссылку в папке «Рабочий стол», которая указывает на папку «Загрузки». Вы должны запустить следующую команду:
ln -s /Пользователи/имя/Загрузки /Пользователи/имя/Рабочий стол
После создания ссылки вы увидите папку «Загрузки» на рабочем столе. На самом деле это символическая ссылка, которую вы создали, но она будет выглядеть как настоящая. Эта папка будет содержать все те же файлы, что и папка «Загрузки». Это потому, что это так — это просто разные представления, указывающие на один и тот же базовый каталог в файловой системе.
Если путь к файлу содержит пробелы или другие специальные символы, его необходимо заключить в кавычки. Итак, если вы хотите создать на рабочем столе ссылку на папку с именем «Мои файлы» внутри вашего пользовательского каталога, вам понадобится что-то вроде следующей команды:
ln -s "/Пользователи/имя/Мои файлы" "/Пользователи/имя/Рабочий стол/Моя ссылка"
Чтобы упростить ввод путей к файлам и каталогам в Терминале, вы можете перетащить папку из окна Finder в Терминал. Терминал автоматически заполнит путь к этой папке. При необходимости он также будет заключать путь в кавычки.
Если вам нужно создать символическую ссылку в системном расположении, к которому у вашей учетной записи пользователя нет доступа, вам нужно добавить префикс команды ln
к команде sudo
, например:
sudo ln -s /путь/к/исходному /путь/к/ссылке
Помните, что в современных версиях macOS вам не будет разрешено записывать в определенные места системы без изменения параметра прошивки низкого уровня из-за защиты целостности системы. Вы можете отключить эту функцию, но мы не рекомендуем этого делать.
СВЯЗАННЫЕ С: Как отключить защиту целостности системы на Mac (и почему этого делать не следует)
Как удалить символические ссылки
Вы можете удалить символические ссылки, как и любой другой тип файла. Например, чтобы удалить символическую ссылку в Finder, щелкните ее правой кнопкой мыши (или используйте Control+щелчок) и выберите «Переместить в корзину» в контекстном меню.
Вы можете удалить ссылки из командной строки с помощью команды rm
, которая является той же самой командой, которую вы используете для удаления других файлов. Запустите команду и укажите путь к ссылке, которую хотите удалить:
rm /путь/к/ссылке
Как создавать символические ссылки с помощью графического инструмента
Finder может создавать псевдонимы, но они не будут работать как символические ссылки. Псевдонимы аналогичны ярлыкам на рабочем столе в Windows. Они не рассматриваются как настоящие, прозрачные символические ссылки.
Для создания символических ссылок в Finder вам понадобится сторонняя утилита или скрипт. Мы рекомендуем приложение с открытым исходным кодом SymbolicLinker для быстрого добавления параметра в контекстное меню Finder, вызываемое щелчком правой кнопкой мыши (Control+щелчок).
Загрузите файл .DMG и откройте его. В Finder нажмите «Перейти» > «Перейти к папке» и введите «~/Library/Services», чтобы перейти в папку «Службы» вашего имени пользователя. Перетащите файл «SymbolicLinker.service» в эту папку.
Дважды щелкните службу, чтобы запустить ее, затем нажмите «Открыть», чтобы подтвердить, что вы готовы ее запустить.
Теперь вы найдете параметр «Создать символическую ссылку» в меню «Службы», вызываемом правой кнопкой мыши (Control+щелчок).
Теперь переместите символическую ссылку куда хотите, и она всегда будет указывать на исходную папку.
Если вы не использовали их раньше, символические ссылки могут занять некоторое время, чтобы освоиться. Как только вы это сделаете, вы обнаружите, что они являются мощным инструментом для того, что вы часто не можете сделать с обычным псевдонимом.
В macOS есть функции, повышающие производительность, ускоряющие рабочий процесс и обеспечивающие большую гибкость при использовании компьютера. Если вы нашли это руководство полезным, убедитесь, что вы используете рабочие процессы Automator и Shortcuts для изменения размера изображений, понимания основных команд терминала macOS и повышения производительности Mac с помощью нескольких простых советов.
Вы даже можете установить программное обеспечение macOS через терминал с помощью Homebrew.