寻找当前目录下包含特定内容的文件: 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" {} \;
阅读(314) | 评论(0) | 转发(0) |