1

我正在尝试将来自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"

我究竟做错了什么?在我发现的示例中,使用带星号的双引号效果很好。

我认为这可能与这个问题有关

4

1 回答 1

1

类似的问题在这里那里。似乎与 GNUWin32 的 find.exe 在 Windows Vista 和 Windows 7 上的行为不同有关,但在 Windows XP 上却没有。

于 2013-01-02T13:30:50.867 回答