我正在运行一个守护进程,它分析目录中的文件,然后删除它们。如果守护进程由于某种原因没有运行,文件就会堆积在那里。今天该目录中有 90k 个文件。再次启动守护进程后,它处理了所有文件。
然而,目录仍然很大;“ls-dh”。返回大小为 5.6M。我如何对该目录进行“碎片整理”?我已经发现重命名该目录并创建一个具有相同名称和权限的新目录可以解决问题。然而,由于文件随时写入其中,似乎没有一种安全的方法来重命名目录并创建新目录,因为目标目录暂时不存在。
那么 a) 有没有一种方法/一个(shell)程序可以对 ext3 文件系统上的目录进行碎片整理?或者 b) 有没有办法在目录上创建锁,以便尝试写入文件会阻塞,直到重命名/创建完成为止?