系统:Linux Mint 19.1 Tessa,版本:Cinnamon
命令有问题locate
。我test.txt
在桌面上创建了文件。之后我做了:
sudo updatedb
然而
locate test.txt -i
仍然没有显示任何内容。
权限mlocate.db
:-rw-r----
在普通用户上工作,而不是 root (这就是我使用 sudo 命令的原因)
答案1
该updatedb
命令将扫描系统上的文件系统并创建可用文件和目录名称的索引。此索引是作为非特权用户执行的。这意味着索引将只包含可通过以下方式访问的文件的名称全部系统的用户。
由于您的主目录只有您自己可以访问(您在评论中说您有rwx------
该目录的权限),这意味着它不会被索引经过updatedb
。这反过来意味着locate
永远不会从主目录中返回名称(使用sudo locate
而不是只是locate
仍然会查询相同的索引,因此这没有帮助)。
要解决这个问题,您有两种选择:
放宽对您的主目录(以及您希望通过 索引的该目录下的任何目录
updatedb
)的限制。权限可能应为rwxr-xr-x
, 或八进制的 755。不要用于
locate
查找文件。而是使用find
:find "$HOME" -name test.txt
这将查找
test.txt
您的主目录中或主目录下调用的任何内容。