有没有办法创建到 (HTTP) URL 的符号链接?
更新:我想要这样做的原因是我可以将这个符号链接移动到另一台计算机而不必复制文件本身(它很大),相反,另一台计算机只会使用来自 URL 的在线副本。
答案1
无法创建指向 URL 的符号链接。如果您可以制作可执行文件并且目标操作系统与 Linux 类似,则可以创建一个打开 URL 的文件,如下所示:
#!/bin/sh
x-www-browser 'http://example.com/your/link'
答案2
如果您在 Linux 中使用 GUI 桌面(如 Gnome 或 Unity),则可以将 Firefox 和其他浏览器中的 URL 拖放到桌面或 Nautilus 文件管理器中的文件夹中。这将创建一个 .desktop 文件,其中包含几行内容,如下所示:
[Desktop Entry]
Encoding=UTF-8
Name=Link to Google Calendar
Type=Link
URL=https://www.google.com/calendar/render?pli=1
Icon=text-html
只要您在 GUI 中,就可以双击文件以将其打开到默认 Web 浏览器中。我在 Ubuntu 中执行此操作是为了将文档链接存储在我机器上的私人 Drupal wiki 中。
这可能适用于 KDE、xfce 和其他桌面管理器,但我还没有尝试过。
答案3
您希望打开存储在文件系统中的文件中的自动 URL 链接。
实现此目的的方法是使用极简.HTML
文件。例如,带你到Google 主页,将以下代码放在名为的文件中Google.HTML
:
<!DOCTYPE HTML>
<html>
<head>
<title>Google automatic redirect</title>
<meta http-equiv="refresh" content="0; url=http://www.google.com/" />
</head>
<body>
<h1>For older browsers, click Redirect</h1>
<p><a href="http://www.google.com/">Redirect</a></p>
</body>
</html>
当你打开(即双击)此文件时,操作系统将打开你的默认浏览器(例如 Firefox)并呈现这个小 HTML 文件,该文件在标头中有一个 URL 重定向,进而会自动打开重定向中的 URL。
这可以根据您的问题进行调整,带您进入在线文件。
URL 包含协议(例如 HTTP),因此只需确保它在那里即可。为了更简洁,您可以省略<title>
和<h1>
行。
我尝试使用 Ubuntu 16.04 尝试此页面上的其他答案,但没有成功,但这个解决方案有效。
答案4
为了方便使用,我编写了一个脚本来生成 bash 链接,例如莱肯施泰因建议在接受的答案。这也能够正确处理包含空格或其他特殊字符的参数。
使其可运行会使事情变得更加方便。像这样运行它$ linkscript.sh "http://example.com/your/link" "YourLinkFile.sh"
。(根据您的链接和文件名,这通常也可以不使用引号"。根据经验,用引号总是更安全。)
#!/bin/bash
printf '#!/bin/bash\nxdg-open %q\n' "$1" > "$2" && chmod +x -- "$2" #Overwrite existing file with > instead of appending with >>
chmod +x $2 #Makes the generated script executeable
感谢莱肯施泰因之前的评论建议使用printf %q
格式说明符来确保在 URL 包含单引号的情况下,特殊字符被正确引用。这也简化/缩短了代码。建议的脚本然后使用单行printf
而不是之前的两行,这可以在编辑历史中看到。还要感谢altermetax 的评论用于指向使用xdg-open
而不是x-www-browser
与大多数发行版兼容。
请注意代码中的shebang:
您必须使用#!/bin/bash
而不是#!/bin/sh
获取正确的版本,printf
并且不要printf: %q: invalid directive
按照此问答。 谢谢公吨指出这一改进!