我有一个包含源代码的大型 (400 GB+) 目录。我注意到这du -sh directory
需要长达 30 分钟。但是 ncdu 更快,大约需要 2 分钟。当我du -sh
在 ncdu 调用后运行时,它更快,并且在 2 分钟内完成。连续du
命令同样快。我想知道为什么运行 ncdu 会加快 du 的速度。是否涉及某种缓存?
答案1
du
命令没有缓存机制。
相反,当您运行du
命令时,它会stat()
根据目录中每个文件的 inode 大小来计算目录中的磁盘使用情况,然后对其进行汇总。
了解stat()
元数据由操作系统缓存,这将减少du
多次ncdu
连续运行期间的执行时间。