Cygwin和引号的麻烦

时间:2014-04-01 08:26:53

标签: cygwin quotes

我遇到了cygwin和qoutemarks的问题。

这有效:

grep FOO /path/to/files\ with\ spaces/*
grep FOO "/path/to/files with spaces/file1.txt"

但这不是:

grep FOO "/path/to/files with spaces/*"  
grep FOO '/path/to/files with spaces/*'

错误消息是:grep:/ path / to / files with spaces / *:没有这样的文件或目录

星号以某种特殊的方式解释,或者我错过了一些完全明显的东西,或者是一些奇怪的事情。

1 个答案:

答案 0 :(得分:3)

你在bash里面跑吗? man bash了解完整详情。

基本上,通配符扩展由unix中的 shell 完成,而不是由命令本身完成。假设我的文件夹中有四个文件abcdset -x告诉bash回应它实际上要在你输入的内容之后尝试运行的命令,所以我们将在这里使用它。

$ set -x
$ echo *
+ echo a b c d
a b c d

以bash打印的+行开头:bash实际上将a b c d传递给echoecho永远不会看到您输入的*

$ echo "*"
+ echo '*'
*

这次你告诉bash不要通过引用来*进行文件名扩展。因此,echo现在可以看到*

至于您的原始查询,请尝试

grep FOO '/path/to/files with spaces/'*