2014-04-01 35 views
1

我遇到了cygwin和qoutemarks的問題。Cygwin和帶引號的問題

這工作:

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/*' 

錯誤messange是:grep的:/路徑/與空間/ * /文件:沒有這樣的文件或目錄

它以某種特殊的方式解釋星號,或者我錯過了一些完全明顯的東西,或者是一些奇怪的事情。

回答

3

你在bash中運行嗎? man bash的全部細節。

基本上,通配符擴展由unix中的shell完成,而不是由命令本身完成。假設我的文件夾中有四個文件,分別爲a,b,cdset -x告訴bash迴應它實際上將在您輸入內容後嘗試運行的命令,因此我們將在此處使用它。

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

該行開始+通過bash的印刷:bash的實際傳遞a b c dechoecho從未看到您輸入的*

$ echo "*" 
+ echo '*' 
* 

這個時候你告訴bash的不是引用它做對*文件名擴展。因此echo現在看到*

至於你的原始查詢,嘗試

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