Equivalente del archivo .URL en Ubuntu

25

se ha guardado un enlace URL en el archivo * .url a través de Windows y cuando abre este archivo. Si hace doble clic en el acceso directo de Internet recién creado, un archivo URL simple, abrirá su navegador predeterminado a la URL indicada. Ejemplo f contenido del archivo URL:

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

Cuando se copia el mismo archivo (.url) en Ubuntu OS, Ubuntu lo maneja como un archivo de texto. Por lo tanto, el navegador no se abre cuando se activa el doble clic en el archivo

Mi pregunta es: ¿Cuál es el equivalente del archivo .url en Linux para crear un archivo de acceso directo para URL?

Abdennour TOUMI
fuente

Respuestas:

18

En Ubuntu, un acceso directo de URL se almacena en un archivo .desktop de la siguiente manera (por ejemplo):

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

Si aún desea abrir sus archivos URL de Windows en Ubuntu, a continuación se describe cómo puede hacerlo:

El script de Perl que aparece en ese artículo parece estar roto, pero el siguiente código debería hacer lo mismo correctamente:

#!/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
fuente
3
Esa secuencia de comandos de Perl parece rota de varias maneras: la expresión regular de "filtro de retorno de carro" no funcionará porque le falta una barra diagonal inversa, y de hecho, la expresión regular anterior en la ifcláusula nunca coincidirá a menos que la URL contenga el número 1, por la misma razón . Además, si de alguna manera logra coincidir, la URL se pasará sin escape al shell, que no solo es una falla de seguridad, sino que también romperá cualquier URL que contenga, por ejemplo, parámetros separados con &. He enviado una sugerencia de edición a su respuesta para solucionar estos problemas.
Ilmari Karonen
14

En Unity tenemos archivos .desktop para definir elementos en el iniciador, el escritorio u otras ubicaciones. Para crearlos, vea la siguiente pregunta:

Un enlace a un archivo de Internet puede tener una entrada tan simple como la siguiente

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

Puede crear dicho archivo con un editor de texto, o mucho más fácil simplemente arrastrando y soltando un marcador desde su navegador al escritorio.

Sin embargo, tenga en cuenta que un archivo .desktop tan simple no abrirá automáticamente la URL dada en un navegador si el destino es, por ejemplo, un documento de texto o una imagen. Para superar esto, vea la siguiente pregunta:

En caso de que necesitemos abrir archivos .URL con más frecuencia (por ejemplo, desde una unidad compartida), también podemos ejecutar un script bash similar a este para abrirlos:

#! /bin/bash

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

source $1
xdg-open $URL

El command not founderror de este script puede ignorarse o enviarse a /dev/null. Si debemos hacerlo, podríamos asociar este script a un tipo Mime para que la extensión URL haga doble clic para abrir un archivo URL.

Takkat
fuente
Un script increíblemente simple en comparación con la otra respuesta. Póngalo en un .desktoparchivo y .urlasócielo con los archivos y listo.
kiri
Simple, pero un vector de ataque. Como estamos ejecutando / ejecutando el primer argumento (el archivo url).
ctrl-alt-delor
3

Si desea mantener archivos .URL (esto es común para las personas que comparten archivos entre Windows y máquinas * nix), cree un archivo de script, llamémoslo win-urlfile.sh (o lo que quiera) en / usr / local / bin (o su carpeta preferida). Cambiar permiso: 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

Esto funciona en todos los * nix y shells, permitiéndole abrir sus archivos .URL desde su administrador de archivos. Deberá configurar Unity para llamar a win-urlfile.sh al abrir un tipo de archivo .URL. Solo asegúrese de que su administrador de archivos pase un argumento de nombre de archivo único al script cuando abra un tipo de archivo .URL. Pruebe con un nombre simple como test.url cuando configura por primera vez.

Aunque la solución "fuente" (específica de bash) funciona ejecutando archivos .desktop ya que un código de script podría conducir a una ejecución inesperada del código. Personalmente considero esa mala codificación.

Scott R
fuente