在 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*

*'.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 中使用通配符 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

liunx查找以i开头的目录或文件名

linux基础学习-10.2-通配符回顾

通配符和正则表达式的区别

Linux基础命令

Linux文件名匹配之通配符使用

通配符