Linux 搜索查找命令

1.    find [搜索范围(目录)] [选项] [文件或者正则表达式或其它参数]

  使用说明:

    从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

  选项:  

    选项较多,这里列取常用的

    -name :按照指定的文件名查找模式查找文件

    -user :按照用户名查找属于指定用户的所有文件

    -size :按照指定的文件大小查找文件。

  例:

    find /tmp/xxx/ -name a.txt    在目录/tmp/xxx/下查询名称为a.txt的文件

    find /tmp/xxx/ -name *.txt    在目录/tmp/xxx/下查询后缀为.txt的文件

    find /tmp/xxx/ -user root    在目录/tmp/xxx/下查询属于root用户的文件

    find /tmp/xxx/ -size +28M    在目录/tmp/xxx/下查询大于28M的文件

    find /tmp/xxx/ -size 28M    在目录/tmp/xxx/下查询等于28M的文件

    find /tmp/xxx/ -size -1024k    在目录/tmp/xxx/下查询小于1024k的文件
        
2.    locate/slocate 文件或目录

  使用说明:  

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

  例:

    第一次使用locate之前首先使用updatedb命令

    locate aa.txt    搜索根目录下的aa.txt文件

    locate /tmp/xxx *.txt    搜索/tmp/xxx目录下的所有.txt文件

    locate /m    搜索根目录下的所有以m开头的文件或目录

    locate /tmp/xxx/m    搜索/tmp/xxx/目录下的所有以m开头的文件或目录(如果指定了搜索目录,那么要搜索的项则为该目录的子级)
        
3.    grep [选项] 搜索项 文件

  使用说明:  

    过滤查找,在文件中搜索符合搜索项的内容。是一个特别常用的命令,经常和别的命令组合使用。

    “|” :管道符,表示将前一个命令的处理结果输出传递给后面的命令处理。

  选项:

    选项较多,这里列取常用的

    -i :忽略字符大小写的差别。

    -n :在显示符合范本样式的那一列之前,标示出该列的编号。

    -v :反转查找。

    -w :只显示全字符合的列。

  例:

    grep 你好世界 xxx/aa.txt      在aa.txt里查找“你好世界”并输出到终端。

    grep "hello world" xxx/aa.txt      在aa.txt里查找“hello world”并输出到终端。

    grep -v 你好世界 xxx/aa.txt          输出除“你好世界”之外的所有行

    grep -n 世界 xxx/aa.txt | grep -v 你好世界    在aa.txt里查找“世界”并输出除“你好世界”之外的所有行。

    cat xxx/aa.txt | grep 世界    在aa.txt里查找“世界”并输出所查到的行。

原文地址:https://www.cnblogs.com/ymzsb/p/14948192.html