在Ubuntu上等效于.URL文件


25

通过Windows和打开此文件时,URL链接已保存在* .url文件中。如果您双击新创建的Internet快捷方式(一个简单的URL文件),它将打开默认的浏览器以指示的URL。URL文件cntent示例:

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

在Ubuntu OS上复制相同的文件(.url)时,Ubuntu会处理它,例如文本文件。因此,触发双击文件时浏览器不会打开

我的问题是:在Linux中创建URL快捷文件的.url文件等效于什么?

Answers:


18

在Ubuntu中,URL快捷方式存储在.desktop文件中,如下所示(例如):

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

如果您仍想在Ubuntu中打开Windows URL文件,请按以下说明进行操作:

该文章中给出的Perl脚本似乎已损坏,但是以下代码应正确执行相同的操作:

#!/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";
    }
}

3
该Perl脚本看起来有几种破损的地方:“ filter出回车符”正则表达式将不起作用,因为它缺少反斜杠;实际上,if子句中较早的正则表达式将永远不会匹配,除非URL包含数字1,出于相同的原因。另外,如果确实做到了匹配,则该URL将不加转义地传递给shell,这不仅是安全缺陷,而且还会破坏任何包含例如用分隔的参数的URL &。我已为您的答案提交了编辑建议,以解决这些问题。
Ilmari Karonen

14

在Unity中,我们有.desktop文件,用于定义启动器,桌面或其他位置上的项目。要创建这些,请参见以下问题:

指向互联网文件的链接可能具有如下所示的条目:

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

您可以使用文本编辑器创建这样的文件,或者只需将书签从浏览器拖放到桌面即可轻松得多。

但是请记住,如果目标是例如文本文档或图像,则这种简单的.desktop文件将不会在浏览器中自动打开给定的URL。为了克服这个问题,请参见以下问题:

如果确实需要更频繁地打开.URL文件(例如从共享驱动器),我们也可以运行类似于以下内容的bash脚本来打开它们:

#! /bin/bash

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

source $1
xdg-open $URL

command not found脚本中的错误可以忽略或发送至/dev/null。如果必须,则可以将此脚本与扩展名URL的Mime类型关联,以双击打开URL文件。


与其他答案相比,这是一个非常简单的脚本。将其放入.desktop文件中,.url然后将其与文件关联,即可完成操作。
kiri

很简单,但是是攻击的载体。当我们执行/运行第一个参数(URL文件)时。
ctrl-alt-delor

3

如果要保留.URL文件(在Windows和* nix机器之间共享文件的人很常见),则创建一个脚本文件,在/ usr / local /下将其称为win-urlfile.sh(或您喜欢的文件)。 bin(或您的首选文件夹)。更改权限: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

这适用于所有* nix和shell,允许您从文件管理器中打开.URL文件。您需要将Unity配置为在打开.URL文件类型时调用win-urlfile.sh。只要确保您的文件管理器在打开.URL文件类型时将单个文件名参数传递给脚本即可。首次设置时,请使用简单的名称(如test.url)进行测试。

尽管“源”(特定于Bash的)解决方案可以将.desktop文件作为脚本代码执行,但可能会导致意外代码执行。我个人认为编码不好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.