Как создать символическую ссылку на папку, файл

2 мин чтения

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

Как создать символическую ссылку на папку, файл

Файлы лежат на другом диске, а приложению нужен прежний путь. Символическая ссылка позволяет оставить удобное имя и направить его к нужному объекту. В ln -s легко перепутать аргументы: сначала идёт цель, затем имя ссылки. Покажем обычный путь, путь с пробелами и относительную ссылку.

Создаём ссылку с явным именем

ln -s /srv/shared/photos /home/user/photos
ls -ld /home/user/photos
readlink /home/user/photos

Каталог /home/user должен существовать, а имя photos в нём не должно быть занято несовместимым объектом. Само создание символической ссылки не проверяет существование цели: ссылка может оказаться «битой». Поэтому вывод ln без ошибки ещё не завершает проверку.

Пробелы заключаем в кавычки

ln -s "/srv/shared/My Photos" "/home/user/photos"

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

Относительный путь считается от ссылки

ln -s ../shared/photos /srv/current-photos

В этом примере относительная цель интерпретируется от /srv, где расположена ссылка. Она не привязана к каталогу, из которого запущена команда. Перед переносом такого дерева проверьте, сохранится ли взаимное расположение объектов.

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

Откройте ссылку от имени пользователя приложения и попробуйте прочитать нужный файл. Командой readlink проверьте её цель. Здесь используется именно символическая ссылка с ключом -s; для жёстких ссылок ограничения другие.

Источники и дальнейшее чтение