Linux中的查找命令。which、whereis、和find。

which

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果,查询命令和可执行文件,而且是PATH里的。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

whereis

whereis只可以查找命令,(man中说只能查命令、源文件和man文件,实际测试可以查大多数文件)。在$PATH路径基础上增加了一些系统目录的查找,查找范围比which稍大,查找速度快。可以通过 -b 选项,限定只搜索二进制文件。一般直接用locate更香,不要纠结了。

locate

locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令(root用户执行),手动更新数据库。

locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。前面我们说linux中一切皆文件,那么locate牛逼的是一切皆可查。

find

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。因为这玩意直接搜索整个文件目录,默认直接从根目录开始搜索,建议在以上命令都无法解决问题时才用它,功能最强大但速度超慢。除非你指定一个很小的搜索范围。通过 -name 选项指定要查找的文件名,支持通配符。

语法格式: find <指定目录> <指定条件> <指定动作>,这玩意有很多参数,实际使用直接man find查看下,实际一般用不了那么多。

find . -name "my*" 搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。

find /home/test_0  -name "*.txt"  查询/home/test_0目录下以.txt结尾的文件

 find . -name "my*" -ls 搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息

find . -type f -mmin -10 搜索当前目录中,所有过去10分钟中更新过的普通文件

 

grep 过滤查找及“|”管道符

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理,这个玩意非常常用。尤其运维同学,一般配合多个命令同时使用。Linux grep 命令用于查找文件里符合条件的字符串,这玩意参数多的吓死人?为什么会有那么多参数呢?

grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]


[root@ds_001]# grep -n 'oo' regular_express.txt
 
1:"Open Source" is a good mechanism to develop programs.
 
2:apple is my favorite food.
 
3:Football game is not use feet only.
 
9:Oh! The soup taste good.
 
18:google is the best tools for search keyword.
 
19:goooooogle yes

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值