如何按文件包含的内容查找文件



我想写一个命令,它将找到包含给定内容的所有文件。例如,带有短语"iso 文件"的所有文件。我写了这个命令:

find -exec -grep -l "iso file"{}

但是我收到一条消息,说"-exec"没有参数。此命令应如何显示?

-exec 操作要求您指定要执行的以分号结尾的命令。 您省略了分号。 您还在 grep 命令的名称前面加上了一个连字符,结果不太可能是系统上任何命令的名称。 此外,如果您这样做,那么您可能只想考虑常规文件,而不是目录(或特殊文件(。 您可以通过编写如下命令来解决所有这些问题:

find -type f -exec grep -l "iso file" {} ;

另一方面,find在这里与其说是帮助,不如说是障碍,因为grep可以自行执行递归搜索:

grep -lR "iso file" .

您可以使用以下命令使用 xargs 打印所有文件/目录。

find ./ -type f -print | xargs grep -l "iso file"

如果您还想打印匹配的整行,您可以从 grep 命令中删除"-l"参数并编写类似的东西。

find ./ -type f -print | xargs grep "iso file"

最新更新