Linux文件搜索命令

    xiaoxiao2021-03-25  121

    文件搜索命令

    1、PATH环境变量:定义的是系统搜索命令的路径(如下所示)

    [root@localhost~]# echo $PATH

    /usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    如果你自己写的程序执行时不想打绝对路径,就可以将其地址放在PATH环境变量中(其中‘:’是分隔符)

    2、文件搜索命令locate

    a)       locate 文件名:在后台数据库中按文件名搜索,搜索速度更快

    b)       /var/lib/mlocate:#locate命令所搜索的后台数据库(不是实时更新的,大致为一天一更,所以你当天新建的文件可能找不到,这时候就可以updatedb)(不同Linux版本的数据库可能名字不同,不一定叫mlocate,可以用locate locate命令进行确认)

    c)        updatedb:更新数据库

    d)       /etc/updated.conf配置文件

                       i.  PRUNE_BIND _MOUNTS= "yes"(开启搜索限制)

                       ii. PRUNEFS =(搜索时,不搜索的文件系统)

                      iii. PRUNENAMES=(搜索时不搜索的文件类型)

                      iv. PRUNEPATHS=(搜索时不搜索的路径)

    3、命令搜索命令whereis与which

    a)       whereis格式:whereis 命令名

                       i.   whereis只能搜索系统命令,搜索命令所在路径及帮助文档所在位置

                       ii.  选项:

    1. -b:只查找可执行文件

    2. -m:只查找帮助文件

    b)       which:能看到命令所在位置和对应的别名

    c)        不是所有的命令都能找到:比如cd的可执行文件是找不到的(因为是Shell自带的)

    4、文件搜索命令find

    a)       格式:find [搜索范围] [搜索条件]       //搜索文件

    b)       find / -name install.log

                         i. 应避免如上的大范围搜索,会非常耗费系统资源

                         ii. find是在系统当中搜索符合条件的文件名。如果需要匹配使用通配符匹配,通配符是完全匹配。

    c)        Linux中的通配符

                       i.   *:匹配任意内容

                       ii.  ?:匹配任意一个字符

                       iii. []:匹配任意一个中括号内的字符

    d)       find /root -iname [文件名]       //不区分大小写

    e)       find /root -user [所有者]           //按照所有者搜索

    f)         find /root -nouser                        //查找没有所有者的文件

    g)       如果是内核产生的文件或外来数据(u盘等)可能没有所有者,剩下的所有文件应该都有所有者,否则为垃圾文件。

    h)       find /var/log/ -mtime +10         //查找日志log中10天前修改的文件

                      i.             -10:10天内修改的文件

                     ii.             10:10天当天修改的文件

                    iii.             +10:10天前修改的文件

                    iv.             atime:文件访问时间

                     v.             ctime:改变文件属性

                    vi.             mtime:修改文件内容

    i)         find . –size 25k             //查找文件大小是25KB的文件

                     i.             k是小写,M必须是大写!

                    ii.             -25k:小于25KB的文件

                   iii.              25k:等于25KB的文件

                   iv.             +25k:大于25KB的文件

    j)         find . –inum 262422           查找i节点是262422的文件

    k)       find /etc -size +20k -a -size -50k      

                     i.             查找/etc/目录下,大于20KB并且小于50KB的文件

                    ii.             -a:and 逻辑与,两个条件都满足

                   iii.             -o:or 逻辑或,两个条件满足一个即可

    l)         find /etc -size +20k -a -size -50k -exec ls -lh {}\;

                    i.             查找/etc/目录下大于20KB并且小于50KB的文件,并显示详细信息

                   ii.             -exec /-ok 命令 {} \;          ///-ok 命令为对前面得到的结果可执行的命令,如k)项中的ls -lh。其余部分为固定结构。

    5、搜索字符串命令grep

    a)       格式:grep [选项] 字符串 文件名    

    b)       结果:在文件当中匹配符合条件的字符串

    c)        选项:

                      i.           -i:忽略大小写

                     ii.           -v:排除指定字符串

    6、find命令和grep命令的区别

    a)       find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。

    b)       grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。

    c)        通用规则:

                     i.             使用通配符:如果匹配和搜索的是文件的文件名称

                    ii.             使用正则表达式:如果匹配和搜索的是文件当中的内容或数据

    转载请注明原文地址: https://ju.6miu.com/read-2487.html

    最新回复(0)