不久前,我意外地在主目录中创建了数十万个文件,随后我将其删除。
但从那时起,在我的主目录中运行 ls 就变得非常慢(打印需要几十秒)。在其他目录中运行也很慢(打印需要 1 秒),并且 tab 补全在任何地方都很慢(也是几十秒)。
可能存在什么问题?
编辑:正如评论中所建议的,
查找 ~/ -maxdepth 1 | wc
为 67,df -h 的输出为
/dev/sda2 74G 8.4G 62G 12% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 3.9G 12K 3.9G 1% /dev
tmpfs 795M 1.1M 794M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 4.9M 3.9G 1% /run/shm
none 100M 52K 100M 1% /run/user
/dev/sda1 825G 408G 376G 53% /home
AFS 8.6G 0 8.6G 0% /afs
/dev/sdb2 1.9T 584G 1.3T 32% /media/sj1/ResearchData1
/dev/sdc1 932G 409G 524G 44% /media/sj1/ResearchData2
答案1
我遇到了同样的问题,原因是指向网络驱动器文件夹的链接不再起作用。
要了解您的情况是否如此,请获取以下链接列表:
find . -maxdepth 1 -type l -ls
尝试ls
每一个,损坏的那个也会锁定ls
,因此按 Ctrl-C 中止它。
将其移除后,rm
所有内容立即开始加载。
答案2
ls -1 -f /directory
如果目录中有大量文件,请尝试一下。
-1
每行列出一个文件名。-f
禁用排序。
答案3
创建数十万个文件可能会创建大量文件系统扩展,这些扩展不一定会在文件删除时被删除。使用以下命令获取“碎片分数”:
sudo e4defrag -c ~/
如果分数很差(比如说高于 50),请使用不带“-c”标志的相同命令来对文件系统进行碎片整理。
答案4
大多数文件系统在删除后不会压缩目录。对我有用的是这个问题的答案较旧的问题:
- 新建一个文件夹
- 将现有文件和文件夹复制到新文件夹
- 删除慢速文件夹
- 将新文件夹名称重命名为旧文件夹名称