繁体   English   中英

如何在 Cygwin 命令行上将 Windows 路径格式化为 Unix 路径

[英]How to format a Windows path to a Unix path on Cygwin command line

使用 Cygwin 时,我经常复制 Windows 路径并手动将所有斜杠编辑为 Unix 格式。 例如,如果我使用 Cygwin 并且需要更改目录,我输入:

cd C:\windows\path 

然后将其编辑为

cd C:/windows/path  

(通常,路径比那要长得多)。 有没有办法使用 sed 或其他方法来自动执行此操作? 例如,我试过:

echo C:\windows\path|sed 's|\\|g'  

但出现以下错误

sed: -e expression #1, char 7: unterminated `s' command

我的目标是减少打字,所以也许我可以编写一个可以调用的程序。 理想情况下,我会输入:

conversionScript cd C:/windows/path 

这相当于输入:

cd C:\windows\path

谢谢大家。 显然,我需要的只是路径周围的单引号:

cd 'C:\\windows\\path'

Cygwin 将转换它。 Cygpath 也可以工作,但它也需要单引号来防止 shell 吃掉反斜杠字符。

阅读有关 cygpath 命令的信息。

somecommand `cygpath -u WIN_PATH`

例如

您使用 unix sed 用斜线替换反斜线

下面我使用星号“*”来分隔 s 指令中的字段

sed "s*\\\*/*g"

诀窍是使用比您认为需要的更多的反斜杠

cmd.exe不喜欢单引号。 你应该使用双引号

C:\test>echo C:\windows\path|sed "s|\\|/|g"
C:/windows/path

回答你的问题以实现

cd C:\\windows\\path

因为您在 bash 中,所以它可以随心所欲地工作 - 但请添加单引号

cd 'C:\\windows\\path'

正如@bmargulies 和@Jennette 所指出的——cygpath 是你的朋友——阅读 cygwin 手册页是值得的

man cygpath

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM