Преимущества символических ссылок на ярлыки стиля Windows

Когда я в основном использовал Windows, чтобы сделать ярлык, я мог бы использовать обычный файл с подробным описанием, где он связан, с расширением .lnk или .url

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

Я вижу преимущество использования ярлыков на основе файлов (может использоваться в любой файловой системе).

Мой вопрос: почему linux использует символические ссылки над ярлыками на основе файлов и в Linux, как я могу создавать ярлыки в файловых системах, которые не поддерживают символические ссылки (например, FAT32)?

Символы используются по двум причинам:

  1. Он едва использует пространство на жестком диске. В файловых системах, где метаданные зарезервированы во время создания (например, семейство ext2 / 3/4), символические ссылки полностью содержатся как inode в таблице метаданных файловой системы.

  2. Это совершенно прозрачно. См. Объяснение ниже:

Предположим, что я в /etc я создал ссылку на символическую varlink указывающую на /var . С symlinks я могу сделать cd /etc/varlink/lib . Если я затем сделаю ls , я увижу содержимое /var/lib (то есть часть « /etc/varlink » заменяется « /var »). Я могу пойти глубже в /etc/varlink/lib/dbus , в котором я увижу содержимое /var/lib/dbus . Тем не менее, хотя то, что я вижу, на самом деле является содержимым последнего, $CWD (Current Working Directory) по-прежнему остается прежним.

Аналогично, когда символические ссылки относятся к файлам. Предположим, что /etc/fstab является символической ссылкой на /opt/fstab . Я могу сделать все действия против /etc/fstab (например, cat содержимое или выполнить sed против его содержимого) без необходимости сначала декодировать его, чтобы найти фактический файл, на который он ссылается. Файловая система за кулисами будет заботиться о перенаправлении ввода-вывода в фактический файл.


И ответ на второй вопрос: я не думаю, что это возможно вообще. По крайней мере, не через оболочку.

Внутри графического интерфейса, однако, возможно иметь программу, обрабатывающую файлы Windows «.lnk», для перенаправления файлового браузера в другое место. Но я не уверен, что такая программа когда-либо сделана.

Преимущества sym-ссылок:

  1. прозрачность: только программное обеспечение для управления должно знать о существовании sym-ссылок. Они просто работают. Ярлыки работают только в том случае, если программное обеспечение, пытающееся открыть их, знает, что они короткие. Синхронизация работает для всего программного обеспечения, включая устаревшее программное обеспечение.

  2. chain-able: Сим-ссылка позволит ссылку на ссылку на ссылку …

  3. быстрее: они часто хранятся в inode (это может не всегда быть правдой), что ускоряет поиск.

Недостатки:

  1. Дополнительная метаинформация может храниться в коротком разрезе.

  2. Поддержка файловой системы не требуется.

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