首先说一下find命令和grep命令的区别:

linux查找大文件指定内容(如何查找某路径下内容含指定词的所有文件)(1)

找文件内容含指定词的三种方法

方法1: 使用grep命令

grep -lR '人无完人' ./

执行man grep命令可以查到-l和-R的功能:

-l, --files-with-matches

Suppress normal output; instead print the name of each input file from which output would normally have been printed. The scanning will stop on the first match.

-R, --dereference-recursive

Read all files under each directory, recursively. Follow all symbolic links, unlike -r.

简言之,-l是用于输出内容含指定词的文件的名称,-R是用于遍历某个路径下的所有文件。

记住命令选项-lR的窍门:

方法2: 对find命令找到的每一个文件执行一次grep命令

# 旧版find命令 find ./ -type f -exec grep -l "人无完人" {} \; # 新版find命令 find ./ -type f -exec grep -l "人无完人" {}

方法3: 先使用find命令找到全部文件,后使用grep命令处理这些找到的全部文件

find ./ -type f -print0 | xargs -0 grep -l '人无完人'

,