
Некоторое время назад я случайно создал сотни тысяч файлов в своем домашнем каталоге, которые впоследствии удалил.
Однако с тех пор запуск 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
Большинство файловых систем не сжимают каталоги после удаления. Что сработало для меня, так это ответ на этот вопросстарый вопрос:
- Создать новую папку
- Скопируйте существующие файлы и папки в новую папку.
- Удалить медленную папку
- Переименуйте новую папку в старое имя.