如果name有空格,如何在bash中运行可执行文件?

时间:2017-07-17 16:16:36

标签: bash

我在Windows上运行Cygwin的bash。我想在另一个目录中运行一个可执行程序,但是如果目录名包含空格则似乎存在问题。我可以从它自己的目录运行exe(C:/ someUser / myPrograms / Project Name With Spaces /)没问题,

./myFile.exe

但是,如果我在另一个目录(/ cygdrive / c)并尝试使用完整目录路径运行可执行文件,即使我引用该名称来处理空格,它似乎也不起作用,

./"C:/someUser/myPrograms/Project Name With Spaces/myfile.exe"
-bash: ./C:someUser/myPrograms/Project Name With Spaces/myfile.exe: No such file or directory

如果我用ls替换./,找到可执行文件没有问题,所以我知道我输入了正确的路径名。

是否有另一种方法可以运行可以使用空格处理全名的可执行文件?

3 个答案:

答案 0 :(得分:2)

你需要引用它:

'some cmd'

最好确保您的可执行文件名称及其路径包含空格。

但问题是你误解了.这意味着当前目录。由于您运行的路径不是当前文件夹的子文件夹 - 请删除前面的./

答案 1 :(得分:1)

您可以对空格使用转义:'\ '

答案 2 :(得分:1)

对于cygwin,你会想要一个

"/cygdrive/c/someUser/myPrograms/Project Name With Spaces/myfile.exe"
/cygdrive/c/someUser/myPrograms/Project\ Name\ With\ Spaces/myfile.exe
"$(cygpath -u "C:\someUser\myPrograms\Project Name With Spaces\myfile.exe")"
相关问题