码迷,mamicode.com
首页 > 其他好文 > 详细

grep不查找隐藏文件夹的方法

时间:2015-06-26 01:42:43      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:

grep不查找隐藏文件夹的方法

 

默认的grep会搜索所有文件,包括隐藏文件夹下的文件。

例如,使用如下命令搜索MediaButton字符串,搜索结果包含隐藏文件夹下的文件。

grep -nr MediaButton *

如果是用svn管理的代码,每个文件夹下都有一个.svn的隐藏文件夹,包含对代码版本的控制信息,日积月累会越来越庞大。所有如果只是默认搜索的话,很多搜索结果都是svn目录下的,对我们来说,是没有价值的内容;而且还会耗费很多时间。

grep的--exclude-dir=参数就是为了排除某个目录的,即不包含等号后面的目录,所以我们可以利用此参数去掉.svn的隐藏目录。

--exclude-dir=参数的用法如下:

 

1. If you have GNU Grep, it should work like this:

---=".svn"
例如:查找当前目录以及子目录下所有包含"MediaButton"字符串的代码并打印行号

 

grep -nr --exclude-dir=".svn" MediaButton *

或者

grep -nr --exclude-dir=\.svn MediaButton *

--exclude-dir=后面要排除的目录用双引号括起来或者直接接目录名都可以,但是特殊字符必须用转义符表示,例如".svn"中的"."。


2.If happen to be on a Unix System without GNU Grep, try the following:

这种方式是使用管道进行双层“过滤”,其中第二次grep使用了-v选项,即逆向匹配,打印出不匹配的行

-"whatever you like"*|-"\.svn/*"
3. 如果每次都输入--exclude-dir=参数,是不是很慢还容易出错,降低效率呢?

 

不过不用担心,我们可以把--exclude-dir=参数通过加入配置文件 ~/.bashrc (这是bash的当前用户配置文件) 的方法来简化操作,提高效率。

在~/.bashrc文件的末尾添加以下命令:

export GREP_OPTIONS="--exclude-dir=\.svn"   

然后保存,执行source ~/.bashrc或者. ~/.bashrc,使修改起作用。

然后搜索时,执行以下命令即可:

grep -nr MediaButton *

这样默认就会加载GREP_OPTIONS选项,不搜索.svn目录。

需要注意的是,GREP_OPTIONS这个关键词不能修改为其他的,否则系统就不会认为是grep的一个选项参数了。


参考:

http://blog.csdn.net/ameyume/article/details/7711420

 

grep不查找隐藏文件夹的方法

标签:

原文地址:http://www.cnblogs.com/x113/p/4601346.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!