为什么同一个 find 命令会给出两个不同的结果?

为什么同一个 find 命令会给出两个不同的结果?

这已经在我身上发生过两次了(编辑:很多次,我可以复制它)。我正在 Raspberry Pi 上工作,寻找一个我已经知道存在的文件,因此我输入以下命令:

sudo find / -iname 'firefox_binary.py'

我第一次输入它时,它运行没有错误,但找不到该文件。然而,当我几秒钟后运行相同的命令时,它就找到了它。

这是相同的命令,在相同的终端窗口中、相同的路径下、相同的系统上运行,具有相同的文件结构,第一次运行与第二次运行之间仅相隔几秒钟。这个结果怎么可能呢?

答案1

鉴于上述发现,作为解决方法,您可以尝试将搜索限制为/usr

sudo find /usr -iname 'firefox_binary.py'

/sys或通过以下方式之一跳过,无论哪种方式最适合您的用例:

sudo find / -mount -iname 'firefox_binary.py'

sudo find / -not -path '/sys/*' -iname 'firefox_binary.py'

另一个但恕我直言更丑陋的解决方法是在搜索之前尝试触发有问题的目录的填充,例如使用

ls /sys/kernel/debug/tracing/options

或者

cat /sys/kernel/debug/tracing/options/<some_file>

或无论需要什么。

我还建议您向您的维护者提交错误报告find(可能是忙碌盒或者查找工具)。我认为find在这种情况下不应该只是退出递归,并且至少不能没有错误消息。

答案2

这是 find 版本 4.4.2 中发现的一个真正的错误,但该错误已在 find 版本 4.6.0 中修复。

相关内容