我在 /home/myuser 目录下有一个目录,应用程序在其中存储和删除数百万个临时文件。当我在这个目录上执行 ls 时(现在它只有一百个文件),速度太慢了(实际上我好几分钟都没有得到任何输出)。经过一些谷歌搜索和操作:
ls -dl ~/mydir/
我明白了
drwxrwxrwx 2 myuser myuser 160108544 Oct 12 11:31 /home/myuser/mydir/
这基本上意味着我必须为该目录重新编制索引(如果我理解正确的话)。我该如何强制对该目录进行这样的重新索引?
答案1
这取决于您使用的底层文件系统类型,大多数文件系统在删除后不会压缩目录。
卸载文件系统并用于e2fsck -D
优化目录。
如果该问题多次发生,则应考虑为该目录使用专用文件系统。您应该使用其他文件系统类型,我不知道哪种文件系统会动态压缩目录条目,Btrfs 的设计宣称不会出现该问题。
编辑:
e2fsck -D
可能需要很长时间,psusi 答案是避免重新索引整个文件系统的一个很好的选择。
答案2
创建一个新目录,将剩余文件移动到新目录,删除旧目录,然后将新目录重命名为旧名称。