问题描述
通过Windows和打开此文件时,URL链接已保存在* .url文件中。如果双击新创建的Internet快捷方式(一个简单的URL文件),它将打开默认浏览器的指示URL。 URL文件cntent示例:
[InternetShortcut]
URL=http:abdennour-insat.blogspot.com
在Ubuntu OS上复制相同的文件(.url)时,Ubuntu会处理它,例如文本文件。因此,触发双击文件时浏览器不会打开
我的问题是:在Linux中创建URL快捷文件的.url文件等效于什么?
最佳思路
在Ubuntu中,URL快捷方式存储在.desktop file中,如下所示(例如):
[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";
}
}
次佳思路
在Unity中,我们有.desktop文件,用于定义启动器,桌面或其他位置上的项目。要创建这些,请参见以下问题:
指向Internet文件的链接可能具有如下简单的条目
[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文件。
第三种思路
如果要保留.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)进行测试。
尽管”source”(特定于bash)解决方案可以将.desktop文件作为脚本代码执行,但可能会导致意外代码执行。我个人认为编码不好。