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"
私は何が間違っているのですか?例では、スターで二重引用符を使用するとうまくいきました。
この質問に関係しているのではないかと思います。