美文网首页
文件快速定位locate\whereis\which

文件快速定位locate\whereis\which

作者: mysimplebook | 来源:发表于2019-11-19 09:07 被阅读0次

    locate命令用来查找文件或目录。 locate命令要比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db。这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

           如

    [root@localhost~]# locate nginx

    /etc/pki/rpm-gpg/RPM-GPG-KEY-nginx

    /etc/yum.repos.d/nginx.repo

    /usr/share/augeas/lenses/dist/nginx.aug

    /var/cache/yum/x86_64/7/nginx

    /var/cache/yum/x86_64/7/nginx/cachecookie

    /var/cache/yum/x86_64/7/nginx/gen

    /var/cache/yum/x86_64/7/nginx/gen/primary_db.sqlite

    /var/lib/yum/repos/x86_64/7/nginx

    /var/soft/www/deploy/nginx.conf

    [root@localhost~]#

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

    [root@localhost~]# echo $PATH

    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.8.0_181/bin:/usr/java/jdk1.8.0_181/jre/bin:/root/.local/bin:/root/bin

    [root@localhost~]# which locate

    /usr/bin/locate

           whereis命令只能用于程序名的搜索,而且只搜索二进制文件(使用参数-b)、man说明文件(使用参数-m)和源代码文件(使用参数-s)。如果省略参数,则返回所有信息。如

    [root@localhost~]# whereis ls  

    ls:/usr/bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz

    [root@localhost~]# whereis -b ls

    ls:/usr/bin/ls

    相关文章

      网友评论

          本文标题:文件快速定位locate\whereis\which

          本文链接:https://www.haomeiwen.com/subject/fkziictx.html