在 Windows 上,我经常创建一个不存在的文件的完整路径,以便我可以将它提供给文件保存对话框,从而告诉主机应用程序将文件保存在何处。使用 Cygwin,这是完成的:
cygpath -au Some/Relative/Path.blah # For Cygwin apps
cygpath -aw Some/Relative/Path.blah # For Windows apps
我经常将生成的完整路径通过管道传输到 Cygwin putclip
,以便我可以将其粘贴到相关应用程序的文件保存对话框中。更准确地说,我将它通过管道传递给我自己的函数putclp
(没有“i”),它删除了终止回车。
我为 Linux 找到的最接近的对应物是
readlink -e Some/Relative/Path.blah
我将其通过管道传输到xsel -ip
X-windows 主剪贴板或xsel -ib
Ubuntu 中更现代的类似 Windows 的剪贴板。
不幸的是,只返回现有readlink -e
文件的路径。我经常需要为不存在的文件创建完整路径,因为我要告诉应用程序在哪里创建文件。
是否有cygpath
/的对应物readlink
可以根据指定的相对路径创建不存在文件的完整路径?
如果我们假设调用了所需的命令GetFullPath
,则以下是所需功能的示例:
GetFullPath Relative/Path/To/Nonexistent/File
标准输出的结果将是/The/Full/Path/To/Nonexistent/File
.
就足够了——不需要在 Linux 上解析符号链接,涉及链接的路径和不涉及链接的路径之间实际上没有使用差异。您可以对后者执行的所有操作也适用于前者。保存对话框不介意!
同样的
-m
选项也适用于readlink -e Some/Relative/Path.blah
,如果你出于某种相当奇怪的原因真的关心在你的保存对话框中没有符号链接!