Odpowiednik pliku .URL na Ubuntu

25

link URL został zapisany w pliku * .url przez Windows i po otwarciu tego pliku. Po dwukrotnym kliknięciu nowo utworzonego skrótu internetowego, prostego pliku URL, otworzy się domyślna przeglądarka pod wskazanym adresem URL. Przykładowa zawartość pliku URL:

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

Gdy ten sam plik (.url) jest kopiowany w systemie Ubuntu OS, Ubuntu obsługuje go, na przykład plik tekstowy. W związku z tym przeglądarka nie otwiera się po uruchomieniu podwójnego kliknięcia pliku

Moje pytanie brzmi: jaki jest odpowiednik pliku .url w systemie Linux, aby utworzyć plik skrótu dla adresów URL?

Abdennour TOUMI
źródło

Odpowiedzi:

18

W Ubuntu skrót URL jest przechowywany w pliku .desktop w następujący sposób (na przykład):

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

Jeśli nadal chcesz otworzyć pliki URL systemu Windows w systemie Ubuntu, poniżej opisano, jak to zrobić:

Skrypt Perla podany w tym artykule wydaje się być uszkodzony, ale poniższy kod powinien zrobić to samo poprawnie:

#!/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
źródło
3
Ten skrypt w Perlu wygląda na zepsuty na kilka sposobów: wyrażenie regularne „odfiltruj powrót karetki” nie będzie działać, ponieważ brakuje mu odwrotnego ukośnika, a w rzeczywistości wcześniejsze wyrażenie regularne w ifklauzuli nigdy nie będzie pasować, chyba że adres URL zawiera liczbę 1z tego samego powodu . Ponadto, jeśli uda się w jakiś sposób dopasować, adres URL zostanie przekazany do powłoki nieskalowany, co jest nie tylko luką w zabezpieczeniach, ale także zniszczy wszelkie adresy URL zawierające np. Parametry oddzielone &. Przesłałem sugestię dotyczącą edycji rozwiązania tych problemów.
Ilmari Karonen
14

W Unity mamy pliki .desktop do definiowania elementów w programie uruchamiającym, na pulpicie lub w innych lokalizacjach. Aby je utworzyć, zobacz następujące pytanie:

Link do pliku internetowego może mieć wpis tak prosty jak poniżej

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

Możesz utworzyć taki plik za pomocą edytora tekstu lub znacznie łatwiej, po prostu przeciągając i upuszczając zakładkę z przeglądarki na pulpit.

Należy jednak pamiętać, że taki prosty plik .desktop nie otworzy automatycznie podanego adresu URL w przeglądarce, jeśli celem jest np. Dokument tekstowy lub obraz. Aby temu zaradzić, zobacz następujące pytanie:

W przypadku, gdy musimy częściej otwierać pliki .URL (np. Z dysku udostępnionego), możemy również uruchomić skrypt bash podobny do tego:

#! /bin/bash

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

source $1
xdg-open $URL

command not foundBłąd z tego skryptu można zignorować lub wysłane do /dev/null. Jeśli musimy, możemy powiązać ten skrypt z typem Mime dla adresu URL rozszerzenia, aby dwukrotnie kliknąć plik URL.

Takkat
źródło
Niezwykle prosty skrypt w porównaniu do innej odpowiedzi. Umieść to w .desktoppliku i .urlpowiąż z nim pliki, a następnie gotowe.
kiri
Prosty, ale wektor ataku. Ponieważ wykonujemy / uruchamiamy pierwszy argument (plik url).
ctrl-alt-delor
3

Jeśli chcesz zachować pliki .URL (jest to typowe dla osób, które współużytkują pliki między systemami Windows i * nix), a następnie utwórz plik skryptu, nazwijmy go win-urlfile.sh (lub cokolwiek innego chcesz) w / usr / local / bin (lub preferowany folder). Zmień uprawnienie: 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

Działa to we wszystkich * nix i powłokach, umożliwiając otwieranie plików .URL z poziomu menedżera plików. Będziesz musiał skonfigurować Unity, aby wywoływał plik win-urlfile.sh podczas otwierania pliku typu .URL. Upewnij się tylko, że menedżer plików przekazuje do skryptu argument pojedynczej nazwy pliku podczas otwierania pliku typu .URL. Testuj przy użyciu prostej nazwy, takiej jak test.url podczas pierwszej instalacji.

Chociaż rozwiązanie „źródłowe” (specyficzne dla bash) działa podczas uruchamiania plików .desktop, ponieważ kod skryptu może prowadzić do nieoczekiwanego wykonania kodu. Osobiście uważam to za złe kodowanie.

Scott R.
źródło