在 find 和 ls 中使用通配符 [重复]
Posted
技术标签:
【中文标题】在 find 和 ls 中使用通配符 [重复]【英文标题】:Using wild cards with find and ls [duplicate] 【发布时间】:2019-06-17 10:30:51 【问题描述】:使用 * 通配符时 find 命令似乎没有递归搜索
我有一个目录,里面有几个子目录,其中许多包含 pdf。主目录中没有实际的 pdf,只是在其中的子目录中。我想在不打开所有目录的情况下找到所有的 pdf。
find *.pdf
我的代码不应该返回子目录中的所有 pdf 文件吗?我得到“不匹配”。我是否正确使用了通配符?我也试过了
*.pdf*
*'.pdf'*
没有运气。与 ls 的结果相同。我不明白什么?
【问题讨论】:
find /path/to/dir -name "*.pdf"
【参考方案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 脚本的常见常见问题解答。以上是关于在 find 和 ls 中使用通配符 [重复]的主要内容,如果未能解决你的问题,请参考以下文章