有人可以帮助我理解为什么 grep 需要这么长时间才能遍历 /etc 目录吗?

有人可以帮助我理解为什么 grep 需要这么长时间才能遍历 /etc 目录吗?

这是我的代码:

grep -l /etc

当我打字时它似乎仍在浏览文件。也许我理解了 grep -l 的作用? 在此输入图像描述

答案1

grep ( ) 的简短帮助grep --help显示:

Usage: grep [OPTION]... PATTERNS [FILE]...

您的命令grep -l /etc有选项-l和模式,/etc但没有文件。它正在等待您在键盘上键入行。 (通常您会将此形式与来自另一个命令的管道一起使用,例如ls -l |grep one。)

我想你本来想写的是:

grep -l -r search_pattern /etc

-l(或)选项--files-with-matches将“抑制正常输出;而是打印通常打印输出的每个输入文件的名称。扫描将在第一个匹配时停止。”

-r(或)选项--recursive将“递归地读取每个目录下的所有文件,仅当它们位于命令行上时才遵循符号链接。请注意,如果没有给出文件操作数,grep 会搜索工作目录。” User414777 表示这是“非标准,但 BSD 和 MacOS 也支持”。

引用的文本来自 GNU grep 3.4 的手册页。

相关内容