1

Windows7標準シェルでgnuwin32のFindUtilsパッケージのfindコマンドを使用しようとしています。cmd.exe

しかし、パターンマッチングを含む最も単純なコマンドを入力すると、正しく機能しません。

私がタイプした場合:

find . -name "*.java"

私は最終的に:paths must precede expressionエラー。ここで私は次の説明を見つけました:

-nameテストは引数を1つだけ取ります。コマンドラインでは、findコマンドが実行される前に、シェルがsを複数の引数に展開しています。したがって、表示されるエラーが発生します。-name引数でシェルのメタ文字をエスケープするか、その引数を引用符で囲む必要があります。

しかし、私その議論を引用符で囲んでいます!

一重引用符も試してみました:

find . -name '*.java'

この場合、ファイルは見つかりません(ディレクトリにはたくさんの.javaファイルがありますが'*'、同じ効果で確実にチェックしました)。

私も試しました:

find . -name \*.java

二重引用符の場合と同じ効果があります。同じ:

find . -name "\*.java"

私は何が間違っているのですか?例では、スターで二重引用符を使用するとうまくいきました。

この質問に関係しているのではないかと思います。

4

1 に答える 1

1

あちこち同様の質問。WindowsVistaとWindows7では動作が異なるGNUWin32のfind.exeに関連しているようですが、WindowsXPでは動作していません。

于 2013-01-02T13:30:50.867 に答える