Equivalente ao arquivo .URL no Ubuntu

25

um link de URL foi salvo no arquivo * .url via Windows e quando você abre esse arquivo. Se você clicar duas vezes no atalho da Internet recém-criado, um arquivo de URL simples, ele abrirá o navegador padrão no URL indicado. Exemplo de arquivo de URL cntent:

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

Quando o mesmo arquivo (.url) é copiado no Ubuntu OS, o Ubuntu lida com um arquivo de texto. Portanto, o navegador não abre ao acionar o clique duplo no arquivo

Minha pergunta é: Qual é o equivalente ao arquivo .url no Linux para criar um arquivo de atalho para URLs?

Abdennour TOUMI
fonte

Respostas:

18

No Ubuntu, um atalho de URL é armazenado em um arquivo .desktop da seguinte maneira (por exemplo):

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

Se você ainda deseja abrir seus arquivos de URL do Windows no Ubuntu, aqui está descrito como você pode fazê-lo:

O script Perl fornecido nesse artigo parece estar quebrado, mas o código a seguir deve fazer a mesma coisa corretamente:

#!/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
fonte
3
Esse script Perl parece quebrado de várias maneiras: a regexp "filtrar retorno de carro" não funcionará porque está faltando uma barra invertida e, de fato, a regexp anterior na ifcláusula nunca corresponderá, a menos que a URL contenha o número 1, pelo mesmo motivo . Além disso, se de alguma forma conseguir corresponder, o URL será passado sem escape para o shell, o que não é apenas uma falha de segurança, mas também quebrará quaisquer URLs que contenham, por exemplo, parâmetros separados por &. Enviei uma sugestão de edição para sua resposta, corrigindo esses problemas.
Ilmari Karonen
14

No Unity, temos arquivos .desktop para definir itens no iniciador, na área de trabalho ou em outros locais. Para criá-los, consulte a seguinte pergunta:

Um link para um arquivo da Internet pode ter uma entrada tão simples quanto a seguinte

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

Você pode criar esse arquivo com um editor de texto ou muito mais fácil simplesmente arrastando e soltando um marcador do navegador para a área de trabalho.

No entanto, lembre-se de que um arquivo .desktop tão simples não abrirá automaticamente o URL especificado em um navegador se o destino for, por exemplo, um documento de texto ou imagem. Para superar isso, consulte a seguinte pergunta:

No caso de precisarmos abrir arquivos .URL com mais frequência (por exemplo, de uma unidade compartilhada), também podemos executar um script bash semelhante a este para abri-los:

#! /bin/bash

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

source $1
xdg-open $URL

O command not founderro deste script pode ser ignorado ou enviado para /dev/null. Se precisarmos, poderíamos associar esse script a um tipo Mime para que o URL da extensão clique duas vezes em abrir um arquivo de URL.

Takkat
fonte
Um script incrivelmente simples quando comparado com a outra resposta. Coloque isso em um .desktoparquivo e associe os .urlarquivos a ele, e pronto.
kiri
Simples, mas um vetor de ataque. Como estamos executando / executando o primeiro argumento (o arquivo url).
ctrl-alt-Delor
3

Se você deseja manter arquivos .URL (isso é comum para pessoas que compartilham arquivos entre máquinas Windows e * nix), crie um arquivo de script, vamos chamá-lo de win-urlfile.sh (ou o que você quiser) em / usr / local / bin (ou sua pasta preferida). Alterar permissão: 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

Isso funciona em todos os * nix e shells, permitindo que você abra seus arquivos .URL de dentro do seu gerenciador de arquivos. Você precisará configurar o Unity para chamar win-urlfile.sh ao abrir um tipo de arquivo .URL. Apenas verifique se o gerenciador de arquivos passa um único argumento de nome de arquivo para o script quando você abre um tipo de arquivo .URL. Teste com um nome simples como test.url quando você configurar pela primeira vez.

Embora a solução "source" (específica do bash) funcione executando arquivos .desktop como um código de script, pode levar à execução inesperada do código. Pessoalmente, considero essa codificação ruim.

Scott R
fonte