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


25

URL-посилання збережено у файлі * .url через Windows та коли ви відкриєте цей файл. Якщо ви двічі клацніть на новоствореному ярлику Інтернету, простому URL-файлі, він відкриє ваш браузер за замовчуванням на вказану URL-адресу. Приклад f cntent файлу URL-адреси:

[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 виглядає розбитим кількома способами: regexp "відфільтрувати повернення каретки" не працюватиме, оскільки в ньому відсутня зворотна коса риса, і, дійсно, попередній повторний вираз в 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файли з ним, тоді ви закінчите.
kiri

Простий, але вектор атаки. Поки ми виконуємо / запускаємо перший аргумент (файл 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.