Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101458
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-30 12:58
个人简介

路漫漫其修远兮,吾将上下而求索!

文章分类

全部博文(21)

文章存档

2016年(3)

2015年(18)

我的朋友

分类: LINUX

2016-05-25 11:09:10

原文地址:find与grep的组合使用 作者:owen0725

在当前目录下所有文件中查找内容包含 string 的文件:
find ./ -name "*" -exec grep "string" {} \;
注意:在最后不能加 print ,否则会出错.
 
在当前目录下所有文件中查找内容包含 string 的文件并列出字符所在的文件:
find ./ -name "*" -exec grep -l "string" {} \;
 
在当前目录下 *.c 中查找内容包含 string 的文件并列出字符所在的文件的所在行(不显示文件名):
find ./ -name "*.c" -exec grep -n "string" {} \;
 
在当前目录下所有文件中查找内容包含 string 的文件并列出字符所在的文件,所在行及所在行的内容:
find ./ -name "*" -exec grep -n "string" ./ {} \;
 
使用 find 查找时希望忽略某个目录(-prune):
如果希望在 /app 目录下查找文件, 但不希望在 /app/bin 目录下查找:
find /app -name "/app/bin" -prune -o -print
 
使用 type 选项:
如果要在 /etc 目录下查找所有的目录:
find /etc -type d -print
 
如果要在 /etc 目录下查找 .svn 的目录:
find /etc -name .svn -type d -print

为了在当前目录下查找除目录以外的所有类型的文件:
find . ! -type d -print
 
为了在当前目录下查找所有的符号链接文件, 可以用:
find . -type l -print
 
===========================================================
为了用 ls -l 命令列出所匹配到的文件, 可以把 ls -l 命令放在find命令的 -exec 选项中:
find . -type f -exec ls -l {} \;
 
注: f 表示普通文件
    exec 选项后面跟随着所要执行的命令, 然后是一对 {}, 一个空格和一个 \,最后是一个分号。
 
 
 
阅读(1544) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~