文件快速定位locate\whereis\which

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)