Эквивалент файла .URL в Ubuntu


25

URL-ссылка была сохранена в файле * .url через Windows и при открытии этого файла. Если дважды щелкнуть недавно созданный ярлык Интернета, простой файл URL, откроется браузер по умолчанию с указанным URL. Пример f URL-файл cntent:

[InternetShortcut]
URL=http:abdennour-insat.blogspot.com

Когда тот же файл (.url) копируется в ОС Ubuntu, Ubuntu обрабатывает его, например, текстовый файл. Следовательно, браузер не открывается при срабатывании двойного щелчка по файлу

Мой вопрос: что эквивалентно файлу .url в Linux для создания ярлыка для URL?

Ответы:


18

В Ubuntu ярлык URL хранится в файле .desktop следующим образом (например):

[Desktop Entry]
Encoding=UTF-8
Name=Link to Best Practices Software engineering
Type=Link
URL=http://abdennour-insat.blogspot.com/
Icon=text-html

Если вы все еще хотите открыть свои URL-файлы Windows в Ubuntu, здесь описано, как вы можете это сделать:

Сценарий Perl, приведенный в этой статье, выглядит неработоспособным, но следующий код должен делать то же самое правильно:

#!/usr/bin/perl
# Script to make Microsoft Windows Internet Shortcuts (*.url) work on Linux.

my $browser = 'sensible-browser';  # use the system default browser

while (<>) {
    # match any line of the form "URL = something-without-spaces"
    if (/^\s*URL\s*=\s*(\S+)\s*$/) {
        exec $browser, $1;         # successful exec never returns
        die "$0: could not launch $browser: $!\n";
    }
}

3
Этот сценарий Perl выглядит неработоспособным по нескольким причинам: регулярное выражение «отфильтровать возврат каретки» не будет работать, потому что отсутствует обратный слеш, и действительно, более раннее регулярное выражение в ifпредложении никогда не будет совпадать, если URL не содержит число 1по той же причине. , Кроме того, если ему все же удастся сопоставить, URL-адрес будет передан в оболочку без экранирования, что является не только недостатком безопасности, но также нарушит любые URL-адреса, содержащие, например, параметры, разделенные символом &. Я отправил предложение об изменении вашего ответа, чтобы устранить эти проблемы.
Илмари Каронен

14

В Unity у нас есть файлы .desktop для определения элементов на панели запуска, на рабочем столе или в других местах. Чтобы создать их, смотрите следующий вопрос:

Ссылка на интернет-файл может содержать следующую запись:

[Desktop Entry]
Encoding=UTF-8
Name=Internet Link
Type=Link
URL=<url>
Icon=<icon to display>

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

Однако имейте в виду, что такой простой файл .desktop не будет автоматически открывать данный URL в браузере, если целью является, например, текстовый документ или изображение. Чтобы преодолеть это, смотрите следующий вопрос:

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

#! /bin/bash

# opens Windows URL file submitted as command line argument in browser

source $1
xdg-open $URL

command not foundОшибка из этого сценария может быть проигнорирована или отправлена /dev/null. Если нужно, мы могли бы связать этот сценарий с типом Mime для расширения URL, чтобы дважды щелкнуть, чтобы открыть файл URL.


Удивительно простой сценарий по сравнению с другим ответом. Поместите это в .desktopфайл и свяжите .urlфайлы с ним, тогда все готово.
Кири

Простой, но вектор атаки. Как мы выполняем / запускаем первый аргумент (файл url).
Ctrl-Alt-Delor

3

Если вы хотите сохранить файлы .URL (это характерно для людей, которые обмениваются файлами между компьютерами Windows и * nix), то создайте файл сценария, назовем его win-urlfile.sh (или как вам нравится) в / usr / local / корзина (или предпочитаемая папка). Изменить разрешение: chmod + x win-urlfile.sh

#!/usr/bin/bash
sed 's/^BASEURL=/URL=/' "$1" | grep -m 1 '^URL=' | sed 's/^URL=//' | sed 's/\r//' | xargs xdg-open

Это работает для всех * nix и оболочек, позволяя вам открывать ваши файлы .URL из вашего файлового менеджера. Вам нужно будет настроить Unity для вызова win-urlfile.sh при открытии файла .URL. Просто убедитесь, что ваш файловый менеджер передает один аргумент имени файла в сценарий, когда вы открываете тип файла .URL. Тестируйте с простым именем, например test.url, при первой установке.

Хотя «исходное» (специфичное для bash) решение работает, выполняя файлы .desktop, так как код скрипта может привести к неожиданному выполнению кода. Лично я считаю, что плохое кодирование.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.