Answers:
您可以将-exec参数与find结合使用。例:
find . -maxdepth 1 -exec grep foo {} \;
这可以缩放,即 -maxdepth 2
-maxdepth 1
)可扩展。例如-maxdepth 2
。我不知道该如何描述您所做的编辑。
-maxdepth
)不是可移植/标准语法(仅GNU和某些BSD)。另外,这里没有意义\;
(grep
每个文件运行一个)。使用grep -H foo {} +
(特定于GNU)或grep foo /dev/null {} +
(标准)确保始终打印文件名。等效的标准-maxdepth 2
是find . -path './*/*' -type d -prune -o -type f -exec ...
.
您不提供-mindepth 1
),而GNU grep
不会尝试读取目录-r
(它会在目录上递归)。您可能希望将添加-d skip
到grep
(假定GNU的grep)或更好的添加! -type d
到find
,甚至更好-type f
(或-xtype f
假设GNU find
),你可能不想grep
读非正规文件。
grep -Hin
这种方法,以便可以看到文件名和出现该行的行。
-n
完全不递归外,没有最大深度选项。