Linux 是否将 find 命令的结果存储在缓冲区中?

Linux 是否将 find 命令的结果存储在缓冲区中?

我在包含大约 7 TB 数据的目录中运行了以下命令。

find . -type f -cmin +30 | wc -l

大约需要 10 分钟才能显示输出。

十分钟后,我再次运行了相同的命令,这次速度更快了。我的问题是 Linux 是否将结果存储在了某个地方?有人能解释一下为什么第二次没有花这么长时间吗?

答案1

find 命令的结果没有被保存。发生的情况是这样的:

当 Linux 从硬盘读取数据时,它会将这些信息缓存在 RAM 中,只要有空闲空间即可。第一次运行寻找命令耗时十分钟,因为系统必须直接从磁盘读取数据,这比从缓存读取要慢得多。第二次它能够从 RAM 中获取大量所需数据,因此返回速度更快。

答案2

是的,Linux 在后台有一个文件系统缓存,它会自动使用所有可用空间(如果有更好的内存用途,它会回收它)。

相关内容