AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 743060
Accepted
kohane15
kohane15
Asked: 2023-04-16 22:00:14 +0800 CST2023-04-16 22:00:14 +0800 CST 2023-04-16 22:00:14 +0800 CST

`plocate` 在我的主目录中找不到结果,但 `mlocate` 可以。如何在主目录中搜索结果?

  • 772

目前我正在尝试从迁移mlocate到plocate.

我mlocate在我的脚本中使用(注意:locate别名为任一mlocate或plocate取决于我安装的哪个)。

成功搜索主目录mlocate

下面是运行后的前 10 个输出locate home(locate 别名为mlocate):

/home
/etc/apparmor.d/tunables/home
/etc/apparmor.d/tunables/home.d
/etc/apparmor.d/tunables/home.d/site.local
/etc/systemd/homed.conf
/home/username
/home/username/.bash_history
/home/username/.bash_profile
/home/username/.bashrc
/home/username/.cache
/home/username/.cargo

如您所见,我可以使用mlocate.

未成功搜索主目录plocate:

但是,安装后plocate,我从 等获得结果/etc/,/usr/而我得到的只是一个/home:

运行后locate home(locate别名为plocate):

/home
/etc/apparmor.d/tunables/home
/etc/apparmor.d/tunables/home.d
/etc/apparmor.d/tunables/home.d/site.local
/etc/systemd/homed.conf
/usr/bin/addgnupghome
/usr/bin/homectl

如您所见,plocate在我的主目录中找不到文件和目录。

我试过的

1.作者的评论plocate

这个 manjaro 线程如何使用 plocate?作者评论plocate如下:

首先,检查数据库最近是否更新过。大多数用户会希望使用 plocate 的 updatedb;自 plocate 1.1.0 以来,plocate-build(从 mlocate 的数据库转换而来)通常不是您想要的。[...]

文件未显示的另一个原因通常是权限。检查您是否可以以 root 身份找到文件(sudo plocate test);如果可以,问题很可能是您没有从根目录一直向下访问该目录的权限。plocate 应该找到 find / -name test所做的任何事情,但仅此而已。

我跑sudo updatedb了

我的主目录访问权限:

/ 
➜ ll
drwxr-xr-x - root 17 Jul  2022 home/
drwxr-xr-x - root 16 Apr 21:44 usr/

/home 
➜ ll
drwxr-xr-x - username 16 Apr 21:51 username/

看起来确实plocate无法访问我的主目录下的文件和目录,但它具有与usr. 我不明白为什么plocate可以看到usr但看不到文件和目录home。

2.运行时结果不同sudo

plocate当我运行as时,结果是不同的sudo。

以下是常规的locate:

➜  locate ranger
/usr/bin/ranger
/usr/lib/python3.10/site-packages/ranger
/usr/lib/python3.10/site-packages/ranger_fm-1.9.3-py3.10.egg-info
/usr/lib/python3.10/site-packages/ranger/__init__.py
/usr/lib/python3.10/site-packages/ranger/__pycache__

下面运行为sudo:

➜  sudo locate ranger
/root/.config/ranger
/root/.local/share/ranger
/root/.local/share/ranger/bookmarks
/root/.local/share/ranger/history
/root/.local/share/ranger/tagged
/usr/bin/ranger
/usr/lib/python3.10/site-packages/ranger
/usr/lib/python3.10/site-packages/ranger_fm-1.9.3-py3.10.egg-info

我可以在我的主目录中看到结果(即前 5 个结果)。

我想要的是

我希望能够plocate像使用mlocate. 换句话说,我希望在使用时来自主目录的结果plocate:

$ locate home
/home
/etc/apparmor.d/tunables/home
/etc/apparmor.d/tunables/home.d
/etc/apparmor.d/tunables/home.d/site.local
/etc/systemd/homed.conf
/home/username
/home/username/.bash_history
/home/username/.bash_profile
/home/username/.bashrc
/home/username/.cache
/home/username/.cargo
locate
  • 1 1 个回答
  • 65 Views

1 个回答

  • Voted
  1. Best Answer
    kohane15
    2023-04-19T15:46:54+08:002023-04-19T15:46:54+08:00

    TL:DR:如果您使用的是btrfs,请执行以下操作:

    1. 编辑/etc/updatedb.conf
    2. 替换PRUNE_BIND_MOUNTS = "yes"为PRUNE_BIND_MOUNTS = "no"
    3. 保存文件
    4. 更新数据库sudo updatedb
    5. 再次测试以locate home查看home目录中的任何输出。

    解释

    我联系了plocate作者,他亲切地把我送到了正确的方向,并回复如下:

    这些问题中的 90% 似乎是 btrfs 配置错误。您没有说明您正在运行哪个文件系统,但如果是这样,请参阅 PRUNE_BIND_MOUNTS 下的 updatedb.conf 手册页并检查您的 fstab。

    我确实在使用btrfs(检查:)lsblk -f。

    咨询man updatedb.conf给出以下内容:

    PRUNE_BIND_MOUNTS

    字符串 0、no、1 或 yes 之一。如果 PRUNE_BIND_MOUNTS 为 1 或 yes,则 updatedb(8) 不会扫描绑定安装。挂载在绑定挂载子树中的所有文件系统也会被跳过,即使它们不是绑定挂载。作为例外,不会跳过目录自身的绑定挂载。请注意,Btrfs 子卷挂载在内核内部作为绑定挂载处理(请参阅 btrfs-subvolume(8)),因此,如果您还挂载了文件系统根本身,则可能会被跳过。为了解决这个问题,将您的根目录也设为 Btrfs 子卷。

    默认情况下,不会跳过绑定安装。

    有关解决方案,请参阅上面的 TL;DR。

    • 2

相关问题

  • 查找但排除名称 - Linux

  • updatedb 正在生成不完整的文件列表

  • 当目录包含名称时定位停止重复

  • locate 命令查找不存在的文件

  • 用于搜索的简单 CLI 工具

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve