Chinaunix首页 | 论坛 | 博客
  • 博客访问: 39392
  • 博文数量: 22
  • 博客积分: 1130
  • 博客等级: 少尉
  • 技术积分: 280
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-11 17:20
文章分类

全部博文(22)

文章存档

2010年(3)

2009年(19)

我的朋友
最近访客

分类: LINUX

2009-10-26 22:15:54

寻找当前目录下包含特定内容的文件: find . | xargs grep "find_name"

查看每个文件多少行 find . | grep ".c$" | xargs wc -l

在当前文件夹下生成cscope的数据文件,然后在Emacs下就很方便地能查询当前的和函数,并迅速调到定义处。


#!/bin/sh
find ./ -name "*.c" -or -name "*.C" \
     -or -name "*.h" -or -name "*.H" \
     -or -name "*.cpp" -or -name "*.CPP" \
     -or -name "*.asm" -or -name "*.ASM" \
     -or -name "*.s" -or -name "*.S" > cscope.files


find的使用:

一  find命令:find / -name "*.js" | xargs grep "alias"

     1 find 命令

     2 /  查找路径

     3 -name 参数(文件名)

     4 *.js 查找文件类型

     5 | 管道符

     6 xargs 是用来展开find获得的结果

     7 grep  显示(具体参见grep命令)

     8 "alias" 这个是文件中包含的字符串

备注:grep -R -l 一些也可以实现,但是通过管道 | 比单纯用grep 复杂的参数更有效率

参数:-iname 忽略大小写(文件名)

参数:-type  例如,您可以使用以下命令查找一个目录中的所有子目录 find . -type d

几个例子说明一下find的用法
  (1)我想找出/etc目录下是passw开头的所有文件
     find /etc -name "passw*"
  这个例子中"*"号是正则匹配中的“所有”的意思
  (2)我想找出/var/log目录下所有的前5天的.log文件
     find /var/log -name "*.log" -mtime +5
  这个例子中"+5"是指5天以前的文件,如是查"-5"则是5天以内的文件
  (3)我想找出/home目录下是"ygl"这个用户的文件
     find /home -user "ygl"
  (4)我想找出/home目录下是"ygl"这个用户的所有的普通档的文件
     find /home -user "ygl" -type f
  (5)我想找出/var/log目录下的所有的.log文件并查看它的详细信息
     find /var/log -name "*.log" -type f -exec ls -l {} \;
  这个例子中用到了可选属性-exec用来执行ls命令,其中的-exec或者-ok的用法都要在它所执行的command后面接" {} \;"
  (6)我想查找出在/etc中以passw开头的所有文件中有没有ygl这些内容的
     find /etc -name "passw*" -exec grep -in "ygl" {} \;
阅读(309) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~