Символические (символьные) ссылки в Mac OS X

finder2Символические ссылки в Mac OS X позволяют создавать в удобном вам месте файл, который бы содержал в себе путь до искомого объекта файловой системы, сохраненного в другой папке или на другом диске. Это очень похоже на псевдоним файла, который можно создать при помощи Finder. Но, в отличии от псевдонимов, которые работают только на уровне Finder и не могут быть использованы в Терминале и UNIX-приложениях, символические ссылки работают на более глубоком уровне и могут иметь значительно больше применений. Они могут оказаться очень полезны для опытных пользователей компьютеров Mac при выполнении множества различных задач, начиная с упрощения взаимодействия с труднодоступными файлами и заканчивая переносом важных файлов и папок (например, папки «Программы») на внешний диск с сохранением функционала.

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

  1. Запустите Терминал из папки «Утилиты»
  2. Введите команду ln -s /path/to/original/ /path/to/link где /path/to/original/ — путь к оригинальному файлу, а /path/to/link — путь к файлу, который будет содержать ссылку

Обратите внимание на флаг «-s». Он указывает на то, что мы создаем именно символическую ссылку, поэтому пропускать его не стоит. В противном случае мы создадим жесткую ссылку, которая содержит не путь к файлу, а его адрес в файловой системе (имя инода, о которых мы уже рассказывали ранее), что не подходит для выполнения большинства задач, которые обычно ставятся перед символическими ссылками.

Например, если мы хотим создать ссылку, указывающую на пользовательскую папку загрузок, которая хранится на другом диске мы можем ввести следующую команду: ln -s /Volumes/Storage/Downloads/ ~/Downloads/

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

Стоит заметить, что при создании символической ссылки папки «Загрузки» уже не должно быть в пользовательской директории, иначе ссылка будет помещена в саму папку и не будет выполнять нужную нам функцию. Поэтому, стоит сначала скопировать папку в нужное вам место (например, на внешний диск), чтобы не потерять данные, а затем удалить ее из пользовательской директории командой в Терминале: sudo rm -rf ~/Downloads/ После этого можно спокойно создавать символическую ссылку, как это показано выше.

При помощи символических ссылок мы также можем упростить взаимодействие с труднодоступными файлами или скриптами:

sudo ln -s /A/Very/Long/Path/To/App.framework/Resources/command /usr/sbin/commmand

В результате пользователю достаточно будет ввести в Терминале «command» для запуска скрипта, без необходимости указывать полный путь к нему.

Применений для символьных ссылок можно найти бесчисленное множество. Например, если вы пользуетесь облачным хранилищем, вроде Dropbox, можно упростить процесc синхронизации важных для вас папок с этим сервисом, без необходимости переносить их в папку «Dropbox».

Для этого достаточно создать в папке «Dropbox» символические ссылки на те папки, содержимое которых вы хотите синхронизировать:

ln -s ~/Documents/ ~/Dropbox/Documents

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

Удаление символических ссылок

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

Вы также можете воспользоваться Терминалом. Для этого введите команду rm /path/to/symlink или unlink /path/to/symlink/ где /path/to/symlink/ — путь к файлу ссылки (не стоит путать с оригинальным файлом!).

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

 

Упрощаем процесс создания символических ссылок

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

1. Сторонние программы

Для создания символических ссылок в Mac OS X можно воспользоваться уже готовыми программами сторонних разработчиков, например, SymLinker.

После загрузки, распакуйте архив и перенесите, содержащийся в нем файл приложения в папку «Программы», после чего запустите.

В результате на вашем экране возникнет окно программы. Интерфейс приложения довольно прост и запутаться в нем довольно сложно. В строке «Source» необходимо указать путь к файлу или папке, для которых вы хотите создать ссылку. Вы также можете нажать кнопку «Browse», чтобы не вводить путь вручную и выбрать искомый файл в открывшемся окне. Аналогичным образом необходимо ввести (или указать) место и имя для файла, в котором будет содержаться сама ссылка. После этого нажмите кнопку «Create» и ссылка будет создана.

SymLinker

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

2. Автоматизируем создание символических ссылок при помощи Automator

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

  1. Запустите Automator из папки «Программы»
  2. Выберите тип документа «Служба» и нажмите кнопку «Выбрать»CreateService
  3. В верхней части рабочей области укажите, что «Служба получает выбранное: файлы и папки в любой программе«
  4. С панели действий (слева) из библиотеки «Утилиты» перенесите элемент «Запустить shell-скрипт» в рабочую область приложения.
  5. У элемента «Запустить shell-скрипт» для параметры «Shell» укажите значение  «/bin/bash«, а для «Передать ввод» выберите «Как агрументы», затем добавьте в тело элемента сам код скрипта:
  6. В результате должно получиться как на снимке ниже: SymlinkService2
  7. После этого перейдите в меню «Файл» и выберите пункт «Сохранить…» и дайте своему сервису удобное для вас имя, например, «Create Symlink». По умолчанию наша служба будет сохранена в папку ~/Library/Services, что нам и требуется, поэтому больше ничего менять не нужно.

Теперь, при щелчке правой кнопкой мыши по файлу в разделе «Службы» появился новый пункт «Create Symlink» (может называться и иначе, зависит от имени, которое вы дали службе). Ссылка в результате будет создан рядом с оригиналом, и вы можете перенести её в удобное вам место и переименовать по желанию.

Обратите внимание, что если переместить или переименовать сам оригинальный файл ссылка работать перестанет!

Благодарим авторов ресурсов OSXDaily и iMore за оригинальный материал, послуживший основой при написании данной статьи.

О Дмитрий Архипов

Специалист технической поддержки пользователей.
Метки , , , , , , , , . Закладка постоянная ссылка.
  • Саша Савченко

    шел 2017 год в файндере нет до сих пор инструмента создания симлинка.
    блять извините