locate找不到存在的文件


1

有问题的文件是:

/Users/me/Library/Containers/com.dell.Toad/Data/workspace/.metadata/.plugins/com.dell.toadext.oracle.core/connections.xml

定位有什么问题?


1
你有守护进程吗? /System/Library/LaunchDaemons/com.apple.locate.plist 已启用?
fd0

Answers:


0

找到没有错。默认情况下,它不会搜索隐藏文件/目录中的/。

目录 /.metadata/.plugins 它们都被一个以句号“。”为前缀的事实所隐藏。这意味着locate不会索引这些目录中的文件。

我更喜欢使用 find 命令:

sudo find / -name connections.xml


谢谢。 find命令有效。有没有办法默认启用locate来搜索隐藏目录和隐藏文件?我习惯了linux并找到了实际定位的东西。
Fresh Codemonger

我必须做进一步的研究,因为一旦我发现它 没有 在没有编辑.plist文件的情况下搜索隐藏文件时,我放弃了它并继续使用 find 欧洲工商管理学院。除了, find 在OS X,FreeBSD和Linux上是通用的。
Allan

1

locate 数据库由脚本构建 /usr/libexec/locate.updatedb。该脚本由用户运行 nobody 在这一行

tmpdb=`su -fm nobody -c "$0"` || rc=1

除非用户 nobody 有权访问目录,然后该目录的内容不会记录在数据库中。一个简单的解决方案就是使用 mdfind

mdfind -name connections.xml

我试过mdfind connections.xml,它没有返回结果。
Fresh Codemonger

0

您需要确保守护程序在您的计算机上运行:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

或者,您也可以运行以下命令并构建数据库:

sudo /usr/libexec/locate.updatedb

注意 ,文件系统中的文件索引需要一段时间,所以 locate 不会立即显示所有匹配的文件。


或者你可以使用常规 find 寻找你需要的东西。


谢谢回复。如果守护程序未运行,则当您调用locate时,ios将告诉您使用这些命令构建locateb。我已经运行了它们 - 我认为问题与隐藏目录有关。
Fresh Codemonger
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.