如何使用 cygwin 查找文件

如何使用 cygwin 查找文件

我们喜欢使用 cygwin 在 Windows 环境中搜索许多目录。我们尝试了 find . -name *.txt -print

但它抱怨 -print 谓词。那么正确的命令是什么?

我们只希望匹配的文件打印到控制台。

谢谢大家

答案1

它抱怨是因为您没有引用,*.txt所以 shell 正在扩展模式而不是将其传递给find。换句话说,假设您位于包含以下文件的目录中:

 foo.txt bar.txt baz.txt

当您说find . -name *txt -print通配符(*)被shell(可能是bash)扩展时,传递给f的find实际是:

find . -name foo.txt bar.txt baz.txt -print

争论和find抱怨太多了。要得到你想要的东西,你需要引用你正在搜索的模式(你也不需要-print你正在做的事情):

 find . -name "*txt"

答案2

也无法find在 Cygwin 上工作。File not found一直出现错误。问题是 Windows 有自己的版本:

$ which find
/cygdrive/c/Windows/system32/find

我通过在任何地方输入 /usr/bin/find 来解决这个问题,但我想你可以改变路径优先级或重命名 Windows 的 find.exe

相关内容