Dash 搜索未找到某些文件

Dash 搜索未找到某些文件

自从我加密了驱动器并重新安装了 Ubuntu 后,Unity dash 不再搜索文件(我不确定这是否是原因)。

如果我启用了使用历史记录,搜索文件通常会显示“最近”文件的结果,但这不是我想要的。

有时搜索文件不会给出任何结果,例如:(此文件位于我的辅助驱动器上/mnt/...搜索

有时它确实会返回结果:(请注意,所有这些文件也位于同一驱动器上/mnt/...

**编辑:虽然我在隐私设置中禁用并清除了历史记录,但这些文件实际上属于“最近”类别。很奇怪。这意味着实际上除了历史记录之外找不到任何文件。

搜索2

我的主驱动器上的文件也被省略了。

但它似乎能很好地找到文件夹:

桌面

在我重新安装 Ubuntu 16.04LTS 并加密(系统和 /home)之前,这种情况没有发生。但我不确定这是否是原因。

我尝试更改/etc/updatedb.conf、删除ecryptfssudo updatedb按照其他问题中的建议进行操作,但也没有效果。

这是 updatedb.conf 文件的原始内容:

PRUNE_BIND_MOUNTS="yes"

# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs /var/lib/schroot"

PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs"

PS 另外,我想知道是否有办法彻底删除最近的文件。因为我已经清除并禁用了隐私设置,但它们仍然显示出来。

答案1

经过一番阅读,我发现 Unity dash 实际上不会扫描系统上的所有文件,它主要使用 zeitgeist 代码来查看最近使用的文件和应用程序。这意味着我看到的最近文件实际上是预期的结果。

通过在隐私设置中禁用“记录文件和应用程序使用情况”,我禁用了 zeitgeist,最近使用的文件不再显示在主仪表板镜头中。此外,nautilus 中的“最近”部分也被禁用。

有人提到,Ubuntu 的最新版本也使用locate 破折号来定位文件。我安装了locate似乎在我的系统中缺失的软件包。我不知道我是否看到了差异。但是搜索确切的名称似乎确实会产生结果(例如 myfilesomewhere.odt)

当我了解更多有关 dash 功能的信息后,我会更新这个答案。

答案2

问题出在你的配置上:

您的问题的可能根源是 PRUNEFS 条目。

西梅

不应由 updatedb(8) 扫描的文件系统类型(与 /etc/mtab 中使用的一样)的空格分隔列表。文件系统类型匹配不区分大小写。默认情况下,不会跳过任何文件系统类型。

当跳过扫描文件系统时,子树中挂载的所有文件系统也会被跳过,即使它们的类型与 PRUNEFS 中的任何条目都不匹配。

不太可能的可能性是:

PRUNE_BIND_MOUNTS

字符串 0、no、1 或 yes 之一。如果 PRUNE_BIND_MOUNTS 为 1 或 yes,则 updatedb(8) 不会扫描绑定挂载。所有挂载在绑定挂载子树中的文件系统也会被跳过,即使它们不是绑定挂载。作为例外,不会跳过目录本身的绑定挂载。

默认情况下,不会跳过绑定挂载。

NOTE:
       The accompanying locate(1) utility was designed to be compatible to slocate and attempts to be compatible to  GNU  locate
       where possible.  This is not the case for updatedb.

资料来源:

https://linux.die.net/man/5/updatedb.conf

https://unix.stackexchange.com/questions/198590/what-is-a-bind-mount

相关内容