linux find/grep命令学习

1. linux下面用于查到的命令有哪些?
是不是有很多呀,这个我还没做过统计和调查,不过这篇博客只介绍grep与find的最基本应用。
grep和find功能都是相当的强大,这里也只是介绍这两个命令的九牛一毛而已。

2. grep的简单小应用?
(1)如果在给定的文件中搜索某个字符串,直接grep “main” ./main.c即可;
(2)如果你要搜索某个特定的字符串,而不确定这个字符串可能会在哪个文件中出现,
那只能在某个大的目录下递归搜索:grep -r "main" ./;
(3)如果只指定-r来搜索,有时候可能会打印出很多无用的错误的信息,这会严重干扰你在
搜索结果中查找你想要的信息。所以我们要用grep -rs "main" ./,使用-s选项可以帮助我们
将这些因为文件不存在或者文件不可读而打印出来的错误信息统统去除掉;
(4)如果你想知道字符串所在的行号,那一定要指定-n选项:grep -nrs "main" ./;
(5)可是很多时候你按照上面指定的条件进行搜索,在搜索结果中可能仍然有很多不是你想要的。
比如你要搜索的字符串是"main",而要搜索结果中你可能会看到很多诸如"main_function",
"mainly"等等这些包含"main"的更长的字符串。此时我们就需要借助于-w这个命令选项来过滤。
grep -nrws "main" ./。

3. find的简单小应用?
目前我遇到的应用就是在整个系统成千上万的文件中去找某个特定的文件。
find ./ -name "libtest.so"
这样find命令就会在指定的path下递归查找某个特定的文件。
当然find的实际功能是非常非常大的,比如:
find ./ -perm 777
用来在当前path下递归查找所有权限为777的文件。

4. find与grep无敌组合?
如果你查找一个字符串要把整个系统的所有文件都过滤一遍,效率是不是太低了点?
我们可以用类似于如下的命令来提高效率:
find ./ -name "*.c" | xargs grep "main"
这样做的目的就是在指定path下先缩写范围到所有的.c文件,然后在.c文件中查找
特定的字符串。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值