“查找”的 Gnuwin32 端口?

发布于 2024-09-04 19:19:41 字数 1401 浏览 11 评论 0原文

“find”的Gnuwin32端口有问题吗?它可以在我的 Windows XP 命令行上运行,但当我尝试使用文件名模式匹配功能时,我会茫然地看着它。它来自“findutils-4.2.20”包。必须重命名为“gfind.exe”,这样 Windows 就不会与 CMD.EXE 的“find”混淆。
我的 Windows 控制台中的一些示例:

C:\PROGRA~1\GnuWin32\doc\findutils\4.2.20\findutils-4.2.20>gfind .  
.  
./find.chm  
./find.dvi.gz  
./find.GID  
./find.hlp  
./find.html  
./find.pdf  
./find.ps.gz    

有效。
同样,以下方法有效:

C:\PROGRA~1\GnuWin32\doc\findutils\4.2.20\findutils-4.2.20>gfind . -ls  
1970324837321105    0 drw-rw-rw-   2 cjohns89 0               0 Jun  11:34 .  
1688849860610677  128 -rw-rw-rw-   1 cjohns89 0          130729 Mar   2005 ./fin
d.chm  
1688849860610679   76 -rw-rw-rw-   1 cjohns89 0           74301 Mar   2005 ./fin
d.dvi.gz  
21673573207016133   20 -rw-rw-rw-   1 cjohns89 0           16826 Jun  21:05 ./fi
nd.GID  
1688849860610681  152 -rw-rw-rw-   1 cjohns89 0          154036 Mar   2005 ./fin
d.hlp  
1688849860610683  224 -rw-rw-rw-   1 cjohns89 0          226750 Mar   2005 ./fin
d.html  
1688849860610684  372 -rw-rw-rw-   1 cjohns89 0          379300 Mar   2005 ./fin
d.pdf  
1688849860610685  200 -rw-rw-rw-   1 cjohns89 0          201163 Mar   2005 ./fin
d.ps.gz  

但这并不能进行深蹲。

C:\PROGRA~1\GnuWin32\doc\findutils\4.2.20\findutils-4.2.20>gfind . -iname '*.pdf
' -ls  

它只是返回到提示符。我(新手)只是在使用语法时犯了错误还是存在错误?

Is there a problem with the Gnuwin32 port of "find"? It sort of works on my Windows XP command line, but I get blank stares when I try using file name pattern matching function. It's from "findutils-4.2.20" package. Had to rename to "gfind.exe" so Windows wouldn't confuse with CMD.EXE's "find".
Some samples from my Windows console:

C:\PROGRA~1\GnuWin32\doc\findutils\4.2.20\findutils-4.2.20>gfind .  
.  
./find.chm  
./find.dvi.gz  
./find.GID  
./find.hlp  
./find.html  
./find.pdf  
./find.ps.gz    

That works.
Again, the following works:

C:\PROGRA~1\GnuWin32\doc\findutils\4.2.20\findutils-4.2.20>gfind . -ls  
1970324837321105    0 drw-rw-rw-   2 cjohns89 0               0 Jun  11:34 .  
1688849860610677  128 -rw-rw-rw-   1 cjohns89 0          130729 Mar   2005 ./fin
d.chm  
1688849860610679   76 -rw-rw-rw-   1 cjohns89 0           74301 Mar   2005 ./fin
d.dvi.gz  
21673573207016133   20 -rw-rw-rw-   1 cjohns89 0           16826 Jun  21:05 ./fi
nd.GID  
1688849860610681  152 -rw-rw-rw-   1 cjohns89 0          154036 Mar   2005 ./fin
d.hlp  
1688849860610683  224 -rw-rw-rw-   1 cjohns89 0          226750 Mar   2005 ./fin
d.html  
1688849860610684  372 -rw-rw-rw-   1 cjohns89 0          379300 Mar   2005 ./fin
d.pdf  
1688849860610685  200 -rw-rw-rw-   1 cjohns89 0          201163 Mar   2005 ./fin
d.ps.gz  

But this doesn't do squat.

C:\PROGRA~1\GnuWin32\doc\findutils\4.2.20\findutils-4.2.20>gfind . -iname '*.pdf
' -ls  

It just returns to the prompt. Am I (a novice) just mistaken in my use of syntax or is there a bug?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

开始看清了 2024-09-11 19:19:41

Chuck 写道:

gfind . -iname '*.pdf ' -ls

最好没有撇号,因为 Windows XP 命令行是 MS-DOS 命令行。

例如:

gfind . -iname *.pdf  -ls

Chuck wrote:

gfind . -iname '*.pdf ' -ls

It's better without the apostrophe, since the Windows XP command line is an MS-DOS one.

For example:

gfind . -iname *.pdf  -ls
懷念過去 2024-09-11 19:19:41

有点罗嗦,但此链接描述了该问题。简而言之,只有双引号实际上在 Windows 的 cmd.exe 或 command.exe 中执行引用。

另外,请记住,Windows 首先在本地目录中展开 *.pdf - 请参阅 Gnuwin32 find.exe 在执行搜索之前展开通配符

A little wordy, but this link describes the issue. The short answer is that only double-quotes actually perform quoting in Windows' cmd.exe or command.exe.

Also, bear in mind that Windows expands *.pdf in the local directory first -- see Gnuwin32 find.exe expands wildcard before performing search.

隔岸观火 2024-09-11 19:19:41

我认为你的问题的关键在这里得到了解释
https://stackoverflow.com/a/3996353/8543838

不回答你的问题,但过去我也有过GnuWin32“查找”的一些问题,我只是想让您知道有一个替代方案,是 的一部分ezwinports(GNU 工具的另一个端口)。
我似乎还记得ezwinports 的查找速度比GnuWin32 快得多。

另外,我避免重命名与 CMD 内置函数(例如 mkdir、echo 和 find)相同的 Gnu 工具的技巧是在脚本中使用“which find”。然后你就知道你正在使用 gnu find 并且不需要碰任何东西。

I think the key to your issue is explained here
https://stackoverflow.com/a/3996353/8543838

Does not answer your question, but in the past I too had a few issues with GnuWin32 ‘find’ and I just wanted to let you know there is an alternative, part of ezwinports (another port of gnu tools).
I also seem to remember that ezwinports’s find was much faster than GnuWin32’s.

Also, my trick to avoid renaming Gnu tools that are the same as CMD’s built in functions (such as mkdir, echo and find) is to use ‘which find’ for example in a script. Then you know you are using gnu find and don’t need to touch anything.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文