【问题标题】:Using wild cards with find and ls [duplicate]在 find 和 ls 中使用通配符 [重复]
【发布时间】:2019-06-17 10:30:51
【问题描述】:

使用 * 通配符时 find 命令似乎没有递归搜索

我有一个目录,里面有几个子目录,其中许多包含 pdf。主目录中没有实际的 pdf,只是在其中的子目录中。我想在不打开所有目录的情况下找到所有的 pdf。

find *.pdf

我的代码不应该返回子目录中的所有 pdf 文件吗?我得到“不匹配”。我是否正确使用了通配符?我也试过了

*pdf

*.pdf*

*'.pdf'*

没有运气。与 ls 的结果相同。我不明白什么?

【问题讨论】:

  • find /path/to/dir -name "*.pdf"

标签: linux unix tcsh


【解决方案1】:

请尝试

find . -type f -name '*.pdf'

你可以放置你的路径而不是.

find /path/to/working/dir  -type f -name '*.pdf'

【讨论】:

  • 如果当前目录中有任何文件与通配符匹配,这仍然会失败。您可以通过添加引号来解决此问题:find . -type f -name '*.pdf'
  • 谢谢,下次我会记住这一点。我正在修正我的答案
  • 我注意到您已经回答了许多问题,这些问题最终被关闭为重复项。也许您想在花时间撰写回复之前尝试搜索重复项。 Stack Overflow bash tag info page 有一长串关于 Unix shell 脚本的常见常见问题解答。
猜你喜欢
  • 1970-01-01
  • 2013-11-26
  • 2012-11-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多