我们如何共享 Windows 文件系统位置的链接,以便它们尽可能在 Windows、Linux 和 Mac 上运行。
这是关于一种适用于跨平台的格式(windows:\server\share\file 或通常是 DriveLetter:\file vs. Linux smb://server/share/file)以及如何轻松生成链接。
答案1
使用URI
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
正确的语法
对于 UNC Windows 文件路径
\\laptop\My Documents\FileSchemeURIs.doc
Windows 中对应的有效文件 URI 如下:
file://laptop/My%20Documents/FileSchemeURIs.doc
Unix
以下是两个指向同一个 /etc/fstab 文件的 Unix 示例:
file://localhost/etc/fstab file:///etc/fstab
视窗
下面是一些 Windows 系统上的某些应用程序可能会接受的示例,它们引用相同的本地文件 c:\WINDOWS\clock.avi
file://localhost/c:/WINDOWS/clock.avi file:///c:/WINDOWS/clock.avi
https://en.wikipedia.org/wiki/File_URI_scheme
你可以使用一些脚本像这样转换这些反斜杠或手动编辑它们
或者使用路径 复制 复制它允许您复制各种类型的名称,如短名称、长名称、仅文件夹名称、仅文件名、UNC 路径...您甚至可以使用正则表达式创建自己的路径类型进行复制
答案2
最好的解决方案似乎是复制 Windows 共享上的文件,然后在 Outlook 中使用Ctrl+ K(插入超链接)。
这使得文件S:/myfile.txt
类似于file:///server/share/myfile.txt
这样的链接应该可以跨系统发挥作用。
很酷 :-)
答案3
我自己也做过类似的事情,但始终无法获得打开目录或文件上的资源管理器的链接。查找了如何允许我的电子邮件客户端(旧的雷鸟)使用默认应用程序打开文件链接,但没有成功。如果我将链接传递到 Windows 的“运行”框中,HTML 就会起作用——因此 Windows 将使用正确的应用程序打开链接。从那里扩展了它,但我有可以工作的跨客户端+服务器链接,所以完成剩下的工作并不难。但这取决于获取在我的电子邮件客户端中打开的链接:`
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head></head>
<body bgcolor="#f8e8ff" text="#004040">
<br /><a href="file:///T:/Library/_CurrentSeason/_Kenja no Mago/[HorribleSubs] Kenja no Mago - 12 [720p].mkv">T:/Library/_CurrentSeason/_Kenja no Mago/[HorribleSubs] Kenja no Mago - 12 [720p].mkv</a>
<br /><a href="file:///T:/Library/_CurrentSeason/_Tate no Yuusha no Nariagari_;_herosSaveDay/[HorribleSubs] Tate no Yuusha no Nariagari - 25 [720p].mkv">T:/Library/_CurrentSeason/_Tate no Yuusha no Nariagari_;_herosSaveDay/[HorribleSubs] Tate no Yuusha no Nariagari - 25 [720p].mkv</a></body></html>
`
这些链接在 Windows 上有效,并且由一个定期运行并向我发送通知的 Linux 脚本发送给我。我在 Linux 上没有桌面(我运行“X”,它在我的 Win 机器上显示)。但尝试在 Linux 上打开链接是没有意义的(因为它没有桌面也没有良好的媒体处理),而 Mac 更没意义,因为我没有桌面。
我确实有可以在 Linux 和 Windows 上使用的文件系统链接,但不确定这是否有用... 不过,所有这些都是我的设置和路径所独有的。所以我有点搞不清楚你到底想要什么。
不要尝试打开带有反斜杠的 URL 链接。Windows 使用正斜杠作为 URL。此外,除非文件系统具有相似的结构,否则您不能在每个系统上使用相同的链接。但是,您可以使用符号链接来解决这个问题。
我的 Windows 根目录中的 Cygwin/Windows/linux 的一些示例:
cygwin: (/)
D/
Documents -> //Bliss/Documents/
M/
Share -> /S/
S/
T/
windows DIR (c:)
D -> /??/UNC/Bliss/Documents
Documents -> /??/UNC/Bliss/Documents
M -> /??/UNC/Ishtar/Music/Anime
P -> /??/D:/Pictures
Share -> /??/S:/
linux: (/Athenae)
D -> /??/UNC/Bliss/Documents/
Documents -> /??/UNC/Bliss/Documents/
M -> /??/UNC/Ishtar/Music/Anime/
P -> /??/D:/Pictures/
S/
T/
可以在上述任何一个上使用 Cyg+win 使用 /s/ 来查看简单的“S/”,而在 linux 上则可以使用“/Athenae/S”(S 实际上是一个 linux 目录 /Share,因此通过 /Athenae/S 可以进入 windows 工作站来获取 linux 机器所请求的文件。
由于一些 Windows 链接使用 /??/,我在 Linux 上创建了一个目录,其名称为 2 个问号:??/,因此在 Linux 上
> ll '/??/UNC' #gives:
lrwxrwxrwx 1 6 Feb 28 2015 Bliss -> Ishtar/
drwxrwx--- 2 61 Feb 28 2015 Ishtar/
lrwxrwxrwx 1 6 Feb 28 2015 ishtar -> Ishtar/
这样,在 Linux 上显示的 Windows 链接就会带我到正确的位置。
所有这些符号链接的胡言乱语都是为了让相同的路径名在我的 Linux 和 Windows 机器上工作(这是您问题的一部分),因为这是我确保可以从相同路径名中看到事物的文件路径部分的方式。
除非您强制每个系统上的一些简单的公共目录都相同,否则要做您想做的事情可能会很复杂。
打开电子邮件中的链接...ARG....我不知道如何覆盖安全限制,因为当链接从电子邮件复制到 WIN-R(运行提示)时可以正常工作。
谁知道如何在电子邮件中打开本地链接(这应该可以通过启用文件原型来实现,但没有成功。(叹气))。