欢迎各位兄弟 发布技术文章
这里的技术是共享的
云锁操作系统加固要关掉
跟随鸟哥的Linux私房菜进行学习的过程中,用locate 查找文件
提示
-bash: locate: command not found
那就先updatedb一下吧
提示
-bash: updatedb: command not found
baidu说updatedb 不能用先要安装 slocate
yum install slocate
提示
找不到 slocate 相应的包
原来是mlocate已经替换slocate了-------
[root@localhost tmp]# yum -y install mlocate
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* rpmforge: ftp.riken.jp
* updates: mirrors.btte.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mlocate.i686 0:0.22.2-4.el6 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================================
Package Arch Version Repository Size
==================================================================================================
Installing:
mlocate i686 0.22.2-4.el6 base 85 k
Transaction Summary
==================================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)
Total download size: 85 k
Installed size: 273 k
Downloading Packages:
mlocate-0.22.2-4.el6.i686.rpm | 85 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : mlocate-0.22.2-4.el6.i686 1/1
Installed:
mlocate.i686 0:0.22.2-4.el6
Complete!
但是
[root@localhost tmp]# locate passwd
locate: can not stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录
安装成功了,现在使用 updatedb 命令来创建locate命令依赖的数据库。
[root@localhost tmp]# updatedb
这样就OK了
来自 http://blog.csdn.net/vonzhoufz/article/details/8762865
运行locate命令时,系统报错:locate: command not found。查了相关资料,发现原因是系统上没有该执行文件,就需要安装。解决方案如下:
执行命令:[root@centos62server ~]# yum install locate //看locate属于哪个软件包
查出来mlocate.x86_64 : An utility for finding files by name
执行:[root@centos62server ~]# yum install mlocate
mlocate安装完成之后,再执行locate命令,就不会报错。
出现locate: command not found 还有一种原因是系统路径不对,分析和解决方案如下:
command not found,意思是命令没有找到。linux下的文件都有一个路径,要对该文件进行操作,必须指定准确的路径。就像执行/bin/ls时,可以输出当前目录里面的文件及目录。
但是直接输入ls为什么也可以达到这个效果呢?这是因为,linux定义了一个全局变量PATH,在命令行输入
echo $PATH
会有如下输出:
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
即,linux将常用命令的路径写入变量PATH,我们输入单个命令时,系统会在PATH中自动寻找该命令,如果没有找到,就会报错locate: command not found
现在用find / -name locate找一下是否有locate这个命令,如果有,按绝对路径来执行或者将路径写入PATH,即不会报错了
附:如何写入PATH,有两种方法
1、PATH=$PATH:path(退出当前shell,则失效)
2、编辑用户家目录下的~/.bash_profile文件(可以永久使用)