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
网友评论