filesystems – 如何在ext3上对目录进行“碎片整理”?

我正在运行一个守护程序,它分析目录中的文件然后删除它们.如果守护程序由于某种原因未运行,则文件会堆叠在那里.今天我在该目录中有90k文件.再次启动守护程序后,它处理了所有文件.

但是,目录仍然很大; “ls -dh.”返回5.6M的大小.我怎样才能“整理”该目录?我已经发现重命名该目录,并创建一个具有相同名称和权限的新目录解决了这个问题.但是,随着文件随时写入文件,似乎没有一种安全的方法来重命名目录并创建一个新目录,目标目录不存在.

那么a)是否有一种方法/一个(shell)程序可以对ext3文件系统上的目录进行碎片整理?或者b)有没有办法在目录上创建锁,以便尝试写文件块直到重命名/创建完成?

最佳答案 “优化文件系统中的目录.这个选项使e2fsck尝试优化所有目录,如果文件系统支持目录索引,则通过重新索引它们,或者通过为较小目录排序和压缩目录,或者使用传统线性目录的文件系统.” – fsck.ext3 -D

当然,这不应该在已安装的文件系统上完成.

点赞