我运行这个命令
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 在搜索过程中发现到子目录的符号链接,则将搜索该符号链接指向的子目录。