【发布时间】:2021-01-21 20:56:58
【问题描述】:
我在 Windows 上使用 WSL2 Ubuntu。我在 WSL 中定义的 Windows 上有一个打开 Notepad++ 的别名,如下所示:
alias npp="/mnt/c/Program\ Files/Notepad++/notepad++.exe"
它可以工作......但只要我添加另一个别名,例如
alias npp="/mnt/c/Program\ Files/Notepad++/notepad++.exe"
alias l="ls -l"
我收到错误 - : No such file or directory/Notepad++/notepad++.exe。仅当它是文件中定义的最后一个别名时才有效。
我的猜测是它可能与 Notepad++ 路径中的空格有关,但我不太确定了。我尝试了不同的逃脱方式,但没有运气。这里发生了什么,原因和解决方法是什么?
【问题讨论】:
-
您在哪里定义这些别名,您是否有机会使用 Notepad++ 编辑文件?我认为这可能是一个行尾问题。
-
您的文件中有一个 CR 字符。 您设置的别名值实际上是
/mnt/c/....notepad++.exe<CR>,这是一个不存在的文件名。使用可以删除 CR 的编辑器编辑文件,或者使用 dos2unix(如果包含在您使用的发行版/实例中)。 -
另外,
npp的定义可能是文件的 最后 行,直到您添加了额外的行,它才以 CRLF 结尾。bash需要一个 POSIX 文本文件:其中 每一行 行都以换行符结束; CRLF 对的 CR 被视为任何其他字符。 -
没错!我主要用 nano 编辑 unix 系统文件,但它可能发生过我用 Notepad++ 打开过别名文件一次 :) 谢谢。