如何强制find递归搜索子目录

如何强制find递归搜索子目录

我运行这个命令

find -iname *something*

它通常在子文件夹中搜索,但如果我有一个与工作目录中的条件匹配的文件,它只会报告它并停止。我正在考虑编写一个函数,首先搜索当前目录中的子文件夹,而不是为每个子文件夹发出许多查找命令,但我觉得应该有一种更简单的方法......实际上我认为这应该是默认行为,所以也许我某些安装文件有问题吗?

答案1

某物包含一个由 shell 解释的 glob?这将导致扩展的文件名被传递给 find 命令。

例如,如果您find -iname *.txt在当前目录中运行一个名为文件.txt那么 shell 扩展后的结果命令将是find -iname file.txt.

为了避免这个陷阱,您可以转义 glob,将文字字符串发送到 find 命令find -iname '*.txt'

答案2

如果子文件夹位于符号链接后面,则必须使用 -L 选项。尝试

find -L . -iname '*something*'

根据查找手册页

如果 -L 有效并且 find 在搜索过程中发现到子目录的符号链接,则将搜索该符号链接指向的子目录。

相关内容