在之前的文章中,我只看到在 wine 下运行 Windows 可执行文件时使用纯 Linux 路径和纯 Windows 路径。
何时使用基于 wine 的 Linux 路径/home/t/.wine/dosdevices/z:/tmp/test/O.pdf
?
winepath
将纯 Linux 路径转换为基于 wine 的 Linux 路径。例如,
$ echo "$(winepath /tmp/test/O.pdf)"
/home/t/.wine/dosdevices/z:/tmp/test/O.pdf
什么时候使用的输出winepath
?
谢谢。
答案1
深入研究winepath
,有不同的配置选项为了它。
关于您问的另一个相关问题我回答过,您可以使用它winepath
来查找给定 Linux 路径方向的 Windows 兼容路径。
然而,winepath
只有在传递特定参数时才真正有用,因为它接受的不同参数实际上告诉它您正在寻找什么。
winepath
接受一堆有用的参数,其中-u
和-w
在这里最有用。这是winepath
Wine 3.4 开发版的手册页:
OPTIONS
-u, --unix
converts a Windows path to a Unix path.
-w, --windows
converts a Unix path to a long Windows path.
考虑到这些,我们可以找到/tmp/test/0.pdf
一个有用的 Windows 路径。(虽然我/tmp/blah.txt
在我的例子中使用了它)
将 Unix 路径转换为长 Windows 路径- 您在另一个问题中必须做什么 - 然后您可以将其传递给 Windows 可执行文件,并且基于您的winecfg
驱动器映射(运行需要几分钟):
$ winepath -w /tmp/blah.txt
Z:\tmp\blah.txt
将 Windows 长路径转换为 Unix 文件路径- 与您需要执行的操作相反,但如果您在 WineC:\
驱动器中安装了某些东西,并且需要将 Linux 文件路径指向文件/可执行文件/文件夹/等,这实际上很有用。如果您需要编辑某个路径中的某些内容,而您不知道它在磁盘上的位置,即通常在~/.wine/drive_c
等中,这会对您有所帮助,因为您可能需要直接访问文件夹。对于下面的示例,它并不是很有用,因为我们已经从本质上知道它Z:
映射到/
您的系统上。但是,从技术上讲,您可以通过完整的 Wine 访问该文件Linux下面的路径(有效,因为它实际上只是您和我的设置中的~/.wine/dosdevices/z:
符号链接):/
$ winepath -u 'Z:\tmp\test\0.pdf'
/home/teward/.wine/dosdevices/z:/tmp/test/0.pdf
这似乎是“默认”——它采用 Windows 路径并根据现有的 Wine 安装输出与 Windows 文件路径等效的 Linux 路径。
因此,TL;DR:
因此,您的主要用例是:
要获取 Unix 文件系统路径并根据 Wine Prefix 中的驱动器设置获取 Windows 样式的路径;这是您必须输入的内容才能在您发布的另一个问题中获得答案。(因为您不能在 Windows 可执行文件的参数中使用 Unix 路径,也不能在 Wine 打开的可执行文件的打开对话框中使用,因为这些都需要 Windows 样式的路径)
获取基于 Wine 的 Windows 路径并获取相应的 Linux 文件系统路径,以便您可以直接与标准 Linux 系统中的文件交互(因为您不能在 Unix 中使用 Windows 路径直接与 Ubuntu 操作系统中的文件交互)