Gnuwin32 find.exe在执行搜索之前扩展通配符

我在Windows环境中使用Gnuwin32二进制文件.
当我想要找到某种类型的文件时,我们来说说PDF,我通常运行:
find . -iname '*.pdf' -print

这可以在任何UNIX系统上完美运行.

find.exe . -iname "*.pdf" -print

但是在Windows下,用双引号代替单引号,只能在当前目录中没有pdf文件的情况下工作,否则*将被扩展.

更糟糕的是,当当前目录中只有一个PDF文件时,它会扩展,没有语法错误,你会得到错误的结果.

我已经试图逃脱*与插入符号,反斜杠,一个明星本身,放在双引号:没有什么对我有用.

实例:

好的,这里是我的所有文件

C:\tmp>find . -type f
./a/1.pdf
./a/2.pdf
./a/aa/1.pdf
./b/1.pdf
./b/bb/1.pdf
./b/bb/2.pdf

良好的行为,通配符没有扩展

C:\tmp>find . -iname "*.pdf"
./a/1.pdf
./a/2.pdf
./a/aa/1.pdf
./b/1.pdf
./b/bb/1.pdf
./b/bb/2.pdf

C:\tmp>cd a

小心,不一致的行为,通配符被扩展:

C:\tmp\a>find . -iname "*.pdf"
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]

C:tmp\a>cd ..\b

小心,通配符被扩展:

C:\tmp\b>find . -iname "*.pdf"
./1.pdf
./bb/1.pdf

谢谢

我发现自己是我的问题的解决方案.

> Gnuwin32的find.exe在最近的Windows版本(Vista,Seven)上不起作用,因为它扩展了只匹配当前目录的内容通配符.
>同样的,UnxUtils的一个旧版本的find.exe遇到了同样的错误.
> The latest find.exe from UnxUtils正在工作.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...