我在一个包含大约7TB数据的目录下运行命令。
find . -type f -cmin +30 | wc -l
显示输出需要大约10分钟。
十分钟后,我又跑了同样的命令,这一次更快了。 我的问题是,Linux已经存储在某个地方的结果? 任何人都可以解释为什么第二次没有花这么久?
find命令的结果不存储。 发生了什么是这样的:
当Linux从您的硬盘读取数据时,只要有一些空闲的信息,它就会将这些信息caching在RAM中。 第一次运行find命令需要十分钟,因为系统必须直接从磁盘读取数据,这比从caching中读取要慢得多。 第二次,它能够从RAM中获得所需的大量内容,因此返回速度更快。
是的,Linux在后台有一个文件系统caching,可以自动使用所有可用的空间(如果内存使用得更好,将会回收它)。