Linux下如何查找某个目录下包含指定字符串的文件

本来我是记得这个查找某个目录下包含指定字符串的文件这个命令的,但是今天在使用的时候出现了一个严重的问题。这个问题以前也出现过,但是没什么影响就没有关注。但是这次我得解决这个问题!
我记得的命令是这样的:
find /path/to/directory -type f | xargs grep 'xxx'
但是一直会出现这种类型错误提示:.config/google-chrome/Default/Local:No such file or directory
怎么会这样呢?我仔细一看,沿着目录去找提示的文件,发现该名称的路径不存在,但是存在"Local XXX"这样的目录。
问题很明显了,是pipe(管道)传递时空格惹的祸,那么怎么解决这个问题呢?
我只能求助于搜索引擎了,使用关键词“Linux find xargs grep space”搜索,结果中有个stackoverflow的链接,标题是“How can I make xargs handle filenames that contain spaces?”。果然stackoverflow不愧是程序员的圣地之一,连这个都有。
排在前面的有几种方案,我试了
find /path/to/directory -type f -print0 | xargs -0 grep 'xxx'
这条命令搜索成功并且没有报错。
接下来,我该想想办法怎么把这个常用的搜索语句写成脚本方便以后使用了。

标签: none

添加新评论