Символические ссылки против ярлыков Windows?

В чем различия между символическими ссылками в ярлыках Ubuntu и Windows? Являются ли они аналогичными понятиями? Или в Ubuntu есть что-то похожее на ярлыки Windows?

4
задан 22 May 2014 в 22:44

3 ответа

Да и нет.

для понимания капризов здесь, необходимо понять отношения между inode таблицей и данными, записанными в диск.

ярлыки Windows являются данными пути, содержавшимися в регулярных файлах. Думайте о них как текстовые файлы, которые только содержат URI для файла. Из Википедии:

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

Другое различие возможности механизма: ярлыки Microsoft Windows обычно относятся к месту назначения полным путем (начинающий с корневого каталога), тогда как символьные ссылки POSIX могут относиться к местам назначения или через абсолют или через относительный путь. Последний полезен, если и местоположение и место назначения символьной ссылки совместно используют общий префикс пути, но тот префикс еще не известен, когда символьная ссылка создается (например, в архивном файле, который может быть распакован где угодно).

ярлыки приложения Microsoft Windows содержат дополнительные метаданные, которые могут быть связаны с местом назначения, тогда как символьные ссылки POSIX являются просто строками, которые будут интерпретироваться как абсолютные или относительные пути.

Windows Vista, 7 и 8 также символьные ссылки поддержки исходно под NTFS

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

0
ответ дан 22 May 2014 в 22:44

Символьные ссылки во многом как ярлыки Windows. Они похожи на псевдоним, который указывает на реальный объект в файловой системе. Если объект перемещается или удален, ссылка становится поврежденной.

Оба окна и Linux имеют жесткие ссылки, которые очень отличаются. Я не использовал Windows начиная с XP, и в то время, не было никакого UI для жестких ссылок, но был API, и приложение могло создать жесткую ссылку (это могло также быть сделано пользовательским использованием Cygwin).

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

0
ответ дан 22 May 2014 в 22:44

Не вдаваясь в технические детали под капотом:

Ярлыки Windows — это «обычные файлы», такие как текстовый файл или файл изображения. Большинство программ на компьютере с Windows просто увидят файл с именем whatever.lnk и не будут знать, что с ним делать. Как правило, они обрабатываются только вашим файловым браузером.

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

Лично я постоянно пользуюсь символическими ссылками, чтобы заставить программы сохранять данные в других местах. Например, если я знаю, что игра хранит файлы сохранения в скрытом каталоге /home/UserName/.game/some/sub/folder/saves, я могу вырезать эту папку saves и вставьте его в мою собственную регулярно резервную папку данных /home/UserName/Gaming, переименуйте ее, как я хочу, затем создайте символическую ссылку на нее с именем saves и верните ее туда, где Я нашел оригинальную папку. Игра не будет знать, что что-то произошло.

0
ответ дан 2 June 2020 в 17:19

Другие вопросы по тегам:

Похожие вопросы: