Entspricht der .URL-Datei unter Ubuntu

25

Ein URL-Link wurde in der * .url-Datei über Windows gespeichert, und wenn Sie diese Datei öffnen. Wenn Sie auf die neu erstellte Internetverknüpfung, eine einfache URL-Datei, doppelklicken, wird Ihr Standardbrowser mit der angegebenen URL geöffnet. Beispiel für den Inhalt der URL-Datei:

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

Wenn dieselbe Datei (.url) unter Ubuntu OS kopiert wird, wird sie von Ubuntu wie eine Textdatei behandelt. Daher öffnet sich der Browser nicht, wenn ein Doppelklick auf eine Datei ausgelöst wird

Meine Frage ist: Was entspricht der .url-Datei in Linux, um eine Verknüpfungsdatei für URLs zu erstellen?

Abdennour TOUMI
quelle

Antworten:

18

In Ubuntu wird eine URL-Verknüpfung wie folgt in einer .desktop-Datei gespeichert :

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

Wenn Sie Ihre Windows-URL-Dateien dennoch in Ubuntu öffnen möchten, wird hier beschrieben, wie Sie dies tun können:

Das in diesem Artikel angegebene Perl-Skript scheint fehlerhaft zu sein, aber der folgende Code sollte dasselbe richtig machen:

#!/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";
    }
}
Radu Rădeanu
quelle
3
Dieses Perl-Skript sieht in mehrfacher Hinsicht kaputt aus: Der reguläre Ausdruck "Wagenrücklauf herausfiltern" funktioniert nicht, weil ein umgekehrter Schrägstrich fehlt, und der frühere reguläre Ausdruck in der ifKlausel wird 1aus dem gleichen Grund niemals übereinstimmen, es sei denn, die URL enthält die Nummer . Wenn es irgendwie zu einer Übereinstimmung kommt, wird die URL unvermittelt an die Shell übergeben, was nicht nur eine Sicherheitslücke darstellt, sondern auch alle URLs beschädigt, die z &. B. durch Trennzeichen getrennte Parameter enthalten . Ich habe einen Bearbeitungsvorschlag zu Ihrer Antwort eingereicht, um diese Probleme zu beheben.
Ilmari Karonen
14

In Unity verfügen wir über .desktop-Dateien zum Definieren von Elementen auf dem Launcher, Desktop oder anderen Speicherorten. Um diese zu erstellen, siehe folgende Frage:

Ein Link zu einer Internetdatei kann einen so einfachen Eintrag wie den folgenden haben

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

Sie können eine solche Datei mit einem Texteditor oder viel einfacher durch einfaches Ziehen und Ablegen eines Lesezeichens von Ihrem Browser auf den Desktop erstellen .

Beachten Sie jedoch, dass eine so einfache .desktop-Datei die angegebene URL in einem Browser nicht automatisch öffnet, wenn das Ziel beispielsweise ein Textdokument oder ein Bild ist. Um dies zu überwinden, siehe die folgende Frage:

Für den Fall, dass wir .URL-Dateien öfter öffnen müssen (z. B. von einem freigegebenen Laufwerk), können wir auch ein Bash-Skript wie das folgende ausführen, um sie zu öffnen:

#! /bin/bash

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

source $1
xdg-open $URL

Der command not foundFehler in diesem Skript kann ignoriert oder an gesendet werden /dev/null. Wenn nötig, können wir dieses Skript einem Mime-Typ zuordnen, damit die Erweiterungs-URL durch Doppelklick eine URL-Datei öffnet.

Takkat
quelle
Ein erstaunlich einfaches Skript im Vergleich zur anderen Antwort. Legen Sie das in eine .desktopDatei und verknüpfen Sie die .urlDateien damit, dann sind Sie fertig.
kiri
Einfach, aber ein Angriffsvektor. Während wir das erste Argument ausführen / ausführen (die URL-Datei).
Strg-Alt-Delor
3

Wenn Sie .URL-Dateien behalten möchten (dies ist häufig bei Benutzern der Windows- und * nix-Umgebung der Fall), erstellen Sie eine Skriptdatei mit dem Namen win-urlfile.sh (oder was auch immer Sie möchten) in / usr / local /. bin (oder Ihren bevorzugten Ordner). Änderungsberechtigung: 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

Dies funktioniert auf allen * nix und Shells, sodass Sie Ihre .URL-Dateien in Ihrem Dateimanager öffnen können. Sie müssen Unity so konfigurieren, dass es win-urlfile.sh aufruft, wenn Sie einen .URL-Dateityp öffnen. Stellen Sie einfach sicher, dass Ihr Dateimanager ein einzelnes Dateinamenargument an das Skript übergibt, wenn Sie einen .URL-Dateityp öffnen. Testen Sie bei der ersten Einrichtung mit einem einfachen Namen wie test.url.

Obwohl die "Quell" -Lösung (bash-spezifisch) so funktioniert, dass .desktop-Dateien als Skriptcode ausgeführt werden, kann dies zu einer unerwarteten Codeausführung führen. Persönlich halte ich das für eine schlechte Kodierung.

Scott R
quelle