Linux提示locate: 未找到命令

CentOS7默认没有安装locate命令

解决方案:

  • 1、运行下面命令安装locate:
yum install mlocate
  • 2、执行updatedb命令更新文件数据库
updatedb
  • 3、运行“locate inittab”搜索inittab
locate inittab

打印结果如下: 

/etc/inittab

这时“locate”命令就可以正确使用了。

 

locate命令介绍

Linux locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。

一般情况我们只需要输入 locate your_file_name 即可查找指定文件。

locate [-d ][--help][--version][范本样式...]

参数:

  • -b, --basename -- 仅匹配路径名的基本名称
  • -c, --count -- 只输出找到的数量
  • -d, --database DBPATH -- 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db
  • -e, --existing -- 仅打印当前现有文件的条目
  • -1 -- 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。
  • -0, --null -- 在输出上带有NUL的单独条目
  • -S, --statistics -- 不搜索条目,打印有关每个数据库的统计信息
  • -q -- 安静模式,不会显示任何错误讯息。
  • -P, --nofollow, -H -- 检查文件存在时不要遵循尾随的符号链接
  • -l, --limit, -n LIMIT -- 将输出(或计数)限制为LIMIT个条目
  • -n -- 至多显示 n个输出。
  • -m, --mmap -- 被忽略,为了向后兼容
  • -r, --regexp REGEXP -- 使用基本正则表达式
  • --regex -- 使用扩展正则表达式
  • -q, --quiet -- 安静模式,不会显示任何错误讯息
  • -s, --stdio -- 被忽略,为了向后兼容
  • -o -- 指定资料库存的名称。
  • -h, --help -- 显示帮助
  • -i, --ignore-case -- 忽略大小写
  • -V, --version -- 显示版本信息

locate 与 find 区别:

find 是去硬盘找,locate 只在 /var/lib/slocate 数据库中找。

locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以通过updatedb命令手动升级数据库。

默认情况下 updatedb 每天执行一次。

 

MACOS下调用updatedb

locate数据库位置:

/var/db/locate.datebase

updatedb程序位置:

/usr/libexec/locate.updatedb

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在Linux系统中使用sudo命令时,如果提示"command not found"错误,可能是因为sudo命令的环境变量中没有包含所要执行的命令的路径。这种情况下,可以按照以下步骤解决问题: 1. 首先,确认系统是否已经安装了sudo命令。可以执行以下命令检查/etc/sudoers.d文件是否存在: `find /etc/sudoers.d` 2. 如果返回"No such file or directory",表示系统没有安装sudo命令。可以使用以下命令安装sudo: `apt-get install sudo` 如果安装过程中提示"E: Unable to locate package sudo"错误,可以先执行以下命令更新软件包列表: `apt-get update` 然后再执行sudo apt-get install命令安装sudo。 3. 如果/etc/sudoers.d文件存在,说明系统已经安装了sudo,但是可能没有正确配置环境变量。 在使用sudo执行程序时,为了安全考虑,该程序将在一个新的、最小化的环境中执行。因此,在sudo命令下,诸如PATH这样的环境变量已被重置为默认状态。 当一个刚初始化的PATH变量中不包含要执行的程序所在的目录时,使用sudo命令执行会提示"command not found"错误。 要更改sudo会话中的PATH初始值,请按照以下步骤编辑/etc/sudoers文件: - 执行命令打开/etc/sudoers文件: `vi /etc/sudoers` - 找到"secure_path"一行,该行包含了在执行sudo命令时作为默认PATH变量使用的路径。 - 进入插入模式(按下"i"键),在"secure_path"下面添加所需的路径(例如:/usr/local/bin): `Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin` - 切换到命令行模式(按下"ESC"键),输入":wq"保存并退出编辑。 这样就可以解决sudo命令提示"command not found"错误。 另外,使用完整的脚本文件路径而不是仅仅通过脚本名称来执行sudo命令也是解决问题的一种方法: `sudo /home/fdl/bin/connect.sh` 这些方法可以帮助您解决"sudo:未找到命令"的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [sudo 找不到命令 command not found 解决方案](https://blog.csdn.net/weixin_45798993/article/details/125780047)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [sudo: command not found 的解决方法](https://blog.csdn.net/yzlaitouzi/article/details/128948831)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值