Символическая / программная ссылка похожа на ярлык / псевдоним на рабочем столе?

19

Для меня это звучит как основная идея программных / символических ссылок по сравнению с ярлыками (на ПК) или псевдонимами (на Mac) - это одно и то же. Я далеко? Они похожи?

Marty
источник

Ответы:

14

Основная идея примерно такая же. Символическая ссылка - это специальный файл, который содержит путь (относительный или абсолютный) к другому объекту файловой системы. В UNIX / Linux сама ОС обрабатывает символическую ссылку, прозрачно преобразовывая ее в реальный объект.

На Mac псевдоним, по-видимому, представляет собой специальную конструкцию Finder, которая может ссылаться как на удаленные объекты, так и на локальные, но Finder разрешает ссылку, а не ОС. MacOS X также имеет символические ссылки, но они отделены от псевдонимов.

Большая разница между ярлыком Windows и символической ссылкой. Ярлык Windows не может легко заменить программу, потому что Windows всегда должна иметь эти надоедливые расширения файлов, а файл «lnk» не является исполняемым, когда дело доходит до Windows. В графическом интерфейсе это работает, но с точки зрения сервера - barfs. То же самое с каталогом. Они полезны, но не имеют силы и гибкости символической ссылки.

Arcege
источник
«То же самое с каталогом»: Вы имеете в виду, что нельзя использовать компакт-диск в символической ссылке, указывающей на каталог?
dash17291
2
Это означает, что вы не можете использовать cd для ярлыка в системе Windows, так как это конструкция Windows, а не DOS. В UNIX / Linux это конструкция файловой системы, поэтому она будет работать где угодно, включая cdкоманду - дело команды интерпретировать конечную точку, а не ОС. Например, cdможно использовать символическую ссылку на каталог, но он не сможет работать с символической ссылкой на обычный файл.
Arcege
7

На самом деле, нет. Есть сходство, но только до определенного момента. Я знал людей, которые думали: «Хорошо, символические ссылки похожи на ярлыки, но я их не совсем понимаю» до того момента, когда они говорили: «О, на самом деле символические ссылки не похожи на ярлыки, и теперь я их понимаю». Поэтому я думаю, что ярлыки не являются хорошим способом для понимания символических ссылок, и я рекомендую очистить ваш разум от сравнения с ярлыками.

Символическая ссылка указывает на название другого файла. Это «имя», как и в полном пути, то есть потенциально включает в себя часть каталога, а также имя внутри каталога. Путь может быть абсолютным ( /foo/bar) или относительным ( foo/barили ../barили просто bar); если цель задана относительным путем, она интерпретируется относительно каталога, содержащего символическую ссылку. Целевой файл может существовать или не существовать, и удаление, перемещение или создание целевого файла не повлияет на символическую ссылку.

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

Жиль "ТАК - прекрати быть злым"
источник
1
Символическая ссылка не всегда представляет собой полный путь: в моей системе Slackware 13.1 /usr/lib/libXv.so является символической ссылкой на libXv.so.1.0.0. Там нет полного пути.
Брюс Эдигер