我正在尝试将来自gnuwin32 的 FindUtils 包中的find
命令与 Windows 7 标准外壳一起使用。cmd.exe
但是当我键入涉及模式匹配的最简单的可能命令时,它就无法正常工作。
如果我输入:
find . -name "*.java"
我最终得到:paths must precede expression
错误。在这里,我找到了以下解释:
-name 测试只接受一个参数。在您的命令行中,shell 在运行 find 命令之前将s扩展为多个参数。因此,您会看到看到的错误。您应该转义 -name 参数中的任何 shell 元字符或将该参数括在引号中。
但我把这个论点用引号括起来!
我也尝试使用单引号:
find . -name '*.java'
在这种情况下,找不到文件(目录中有很多 .java 文件,但我'*'
确定检查过,效果相同)。
我也试过:
find . -name \*.java
与双引号具有相同的效果。相同的:
find . -name "\*.java"
我究竟做错了什么?在我发现的示例中,使用带星号的双引号效果很好。
我认为这可能与这个问题有关。