• locate 最快的查找文件的命令 NB


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

    如下面的例子:

    [root@NB test]# touch chehi123
    [root@NB test]# pwd
    /root/test
    [root@NB test]# cd
    [root@NB ~]# pwd
    /root
    [root@NB ~]# locate chehi
    [root@NB ~]# updatedb 
    [root@NB ~]# locate chehi
    /root/test/chehi123
    #但在/tmp下的文件是不效的
    [root@NB tmp]# touch tmp123
    [root@NB tmp]# pwd
    /tmp
    [root@NB tmp]# locate tmp123
    [root@NB tmp]# cd
    [root@NB ~]# locate tmp123
    [root@NB ~]# updatedb
    [root@NB ~]# locate tmp123
    [root@NB ~]# 

     注意:在u盘里的文件也不会被存在/var/lib/mlocate/mlocate.db中,所以locate不能查到u盘内的文件!!!!!确切地说放在/media下的文件都不会被存在/var/lib/mlocate/mlocate.db中!!

    我见过最NB的查找文件最快的命令

    [root@NB data]# locate teamviewer.
    /data/Software/teamviewer.i686.rpm
    /home/ok/.local/share/teamviewer11/drive_c/teamviewer.html
    /home/ok/Desktop/TMP/teamviewer.png
    /home/ok/Downloads/1483075140/20161229/1482892047/1482811421/1482478028/1482238124/1481852519/test/teamviewer.zip
    /opt/teamviewer/tv_bin/desktop/teamviewer.png

    locate -r :使用正规运算式做查找的条件以makefile结尾的

    [root@NB data]# locate -r makefile$
    /usr/local/src/rar/makefile

    以/usr/local/src/test开头的

    [root@NB dnsmasq]# locate -r  ^/usr/local/src/test
    /usr/local/src/test
    /usr/local/src/test/MySQL-5.6.34-1.rhel5.x86_64.rpm-bundle.tar
    /usr/local/src/test/MySQL-client-5.6.34-1.rhel5.x86_64.rpm
    /usr/local/src/test/MySQL-devel-5.6.34-1.rhel5.x86_64.rpm
    /usr/local/src/test/MySQL-embedded-5.6.34-1.rhel5.x86_64.rpm
    /usr/local/src/test/MySQL-server-5.6.34-1.rhel5.x86_64.rpm
    /usr/local/src/test/MySQL-shared-5.6.34-1.rhel5.x86_64.rpm
    /usr/local/src/test/MySQL-shared-compat-5.6.34-1.rhel5.x86_64.rpm
    /usr/local/src/test/MySQL-test-5.6.34-1.rhel5.x86_64.rpm

    -i是不分大小写

  • 相关阅读:
    二叉树
    消息
    线性表 及Java实现 顺序表、链表、栈、队列
    Memcache简介
    redis例子
    redis简介
    Android客户端采用Http 协议Post方式请求与服务端进行数据交互(转)
    jQueryValidate实现重复性验证
    mybatis中${}和#{}的区别
    List转换为数组Array的方法
  • 原文地址:https://www.cnblogs.com/bass6/p/6247405.html
Copyright © 2020-2023  润新知