Équivalent du fichier .URL sur Ubuntu

25

un lien URL a été enregistré dans le fichier * .url via Windows et lorsque vous ouvrez ce fichier. Si vous double-cliquez sur le raccourci Internet nouvellement créé, un simple fichier URL, il ouvrira votre navigateur par défaut à l'URL indiquée. Exemple de fichier URL cntent:

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

Lorsque le même fichier (.url) est copié sur le système d'exploitation Ubuntu, Ubuntu le gère tel qu'un fichier texte. Par conséquent, le navigateur ne s'ouvre pas lors du déclenchement d'un double-clic sur le fichier

Ma question est: Quel est l'équivalent du fichier .url sous Linux pour créer un fichier de raccourci pour les URL?

Abdennour TOUMI
la source

Réponses:

18

Dans Ubuntu, un raccourci URL est stocké dans un fichier .desktop comme suit (par exemple):

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

Si vous souhaitez toujours ouvrir vos fichiers URL Windows dans Ubuntu, voici comment vous pouvez le faire:

Le script Perl donné dans cet article semble être rompu, mais le code suivant devrait faire la même chose correctement:

#!/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
la source
3
Ce script Perl a l'air cassé de plusieurs façons: l'expression rationnelle "filtrer le retour chariot" ne fonctionnera pas car il manque une barre oblique inverse, et en effet, l'expression rationnelle antérieure dans la ifclause ne correspondra jamais sauf si l'URL contient le numéro 1, pour la même raison . De plus, s'il parvient à correspondre, l'URL sera transmise sans échappement au shell, ce qui n'est pas seulement un défaut de sécurité, mais cassera également toutes les URL contenant, par exemple, des paramètres séparés par &. J'ai soumis une suggestion de modification à votre réponse corrigeant ces problèmes.
Ilmari Karonen
14

Dans Unity, nous avons des fichiers .desktop pour définir des éléments sur le lanceur, le bureau ou d'autres emplacements. Pour les créer, consultez la question suivante:

Un lien vers un fichier Internet peut avoir une entrée aussi simple que la suivante

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

Vous pouvez créer un tel fichier avec un éditeur de texte, ou beaucoup plus facilement en faisant simplement glisser et déposer un signet de votre navigateur vers le bureau.

Cependant, gardez à l'esprit qu'un fichier .desktop aussi simple n'ouvrira pas automatiquement l'URL donnée dans un navigateur si la cible est par exemple un document texte ou une image. Pour surmonter cela, consultez la question suivante:

Si nous devons ouvrir les fichiers .URL plus souvent (par exemple à partir d'un lecteur partagé), nous pouvons également exécuter un script bash similaire à celui-ci pour les ouvrir:

#! /bin/bash

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

source $1
xdg-open $URL

L' command not founderreur de ce script peut être ignorée ou envoyée à /dev/null. Si nous le devons, nous pourrions associer ce script à un type MIME pour que l'URL de l'extension double-clique sur ouvrir un fichier URL.

Takkat
la source
Un script incroyablement simple par rapport à l'autre réponse. Mettez-le dans un .desktopfichier et associez-le à des .urlfichiers, alors vous avez terminé.
kiri
Simple, mais un vecteur d'attaque. Comme nous exécutons / exécutons le premier argument (le fichier url).
ctrl-alt-delor
3

Si vous souhaitez conserver les fichiers .URL (cela est courant pour les personnes qui partagent des fichiers entre Windows et les machines * nix), puis créez un fichier de script appelons-le win-urlfile.sh (ou ce que vous voulez) dans / usr / local / bin (ou votre dossier préféré). Modifier l'autorisation: 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

Cela fonctionne sur tous les * nix et shells vous permettant d'ouvrir vos fichiers .URL depuis votre gestionnaire de fichiers. Vous devrez configurer Unity pour appeler win-urlfile.sh lors de l'ouverture d'un type de fichier .URL. Assurez-vous simplement que votre gestionnaire de fichiers transmet un argument de nom de fichier unique au script lorsque vous ouvrez un type de fichier .URL. Testez avec un nom simple comme test.url lors de votre première configuration.

Bien que la solution "source" (spécifique à bash) fonctionne, l'exécution de fichiers .desktop comme un code de script peut conduire à une exécution de code inattendue. Personnellement, je considère ce mauvais codage.

Scott R
la source