Как открыть в Linux интернет-ярлык Windows

Однажды к мудрому Вин Лину, поседевшему в поисках истины, пришел ученик Ксу Ван.

— У меня есть много ярлыков .url, мудрейший, — сказал смущенный ученик. — Я сделал их в Windows и уже замучился возиться с ними в Linux. Можешь ли ты указать мне волшебную программу, которая поможет открывать их в браузере?

— Linux — все, что тебе нужно, — так ответил ученику Вин Лин и вернулся к своему обеду из нежнейших бамбуковых побегов.

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

Позабыв про сон, Ксу кинулся к ноутбуку, чтобы выяснить, что же это такое — url-файл:

file designer-dk.url
designer-dk.url: MS Windows 95 Internet shortcut text (URL=<http://designer-dk.com/>), ASCII text, with CRLF line terminators

Всего лишь текст.

cat designer-dk.url
[InternetShortcut]
URL=http://designer-dk.com/

— Хм-хм, я могу выделить адрес сайта и передать его браузеру в качестве параметра, — в минуты глубокой задумчивости Ксу принимался разговаривать сам с собой. — Попробуем grep?

grep "URL" designer-dk.url
URL=http://designer-dk.com/

Теперь нужно оставить только адрес, убрав «URL=». А если представить полученную строчку в виде мини-таблицы, где для разделения столбцов используется знак «=» и вырезать только второй столбец?

grep "URL" designer-dk.url | cut -f 2 -d "="
http://designer-dk.com/

Вот оно. Теперь завернем команду в $(), чтобы на выходе был виден только результат, в данном случае — адрес, и передадим его браузеру:

firefox $(grep "URL" designer-dk.url | cut -f 2 -d "=")

Отлично работает. Но самое-то главное — автоматизировать процесс, чтобы система выполняла все эти действия каждый раз при открытии URL-файла. Для этого превратим нашу команду в сценарий оболочки и будем передавать скрипту имя файла в качестве параметра.

Высоко-высоко в темном небе мерцали крупные звезды. В хижине, высунув для верности язык, Ксу Ван писал сценарий командной оболочки:

#!/bin/bash

firefox $(grep "URL" $1 | cut -f 2 -d "=")

exit 0

И теперь осталось только сохранить этот скрипт под красивым названием, например, launch-url.sh, разрешить ему выполнение:

chmod +x launch-url.sh

и назначить программой по умолчанию для открытия .url-файлов — способ зависит от того, кто каким десктопом пользуется.

— Незачем искать в Интернете громоздкие и закрытые решения! — воскликнул восхищенный Ксу Ван. — Linux — все, что мне нужно!

Почтенный Вин Лин, услышав восторги ученика, дернул ухом и удовлетворенно кивнул, даже не проснувшись.