Как всегда в Linux, есть несколько способов выполнить эту работу. Однако, если вам нужно сделать это из CLI, это мой предпочтительный метод:
Я начинаю с запуска этого от имени root или с помощью sudo:
du -cha --max-depth=1 / | grep -E "M|G"
Grep предназначен для ограничения возвращаемых строк теми, которые возвращают значения в диапазоне мегабайт или Гигабайт. Если ваши диски достаточно велики, вы могли бы добавить |T
а также включать терабайтные объемы. Вы можете получить некоторые ошибки на /proc
, /sys
, и/или /dev
поскольку они не являются реальными файлами на диске. Тем не менее, он все равно должен предоставлять действительные выходные данные для остальных каталогов в корневом каталоге. После того, как вы найдете самые большие из них, вы можете запустить команду внутри этого каталога, чтобы сузить поиск виновника. Так, например, если /var
был самым большим, что ты мог бы сделать вот так в следующий раз:
du -cha --max-depth=1 /var | grep -E "M|G"
Это должно привести вас к проблемным детям!
Дополнительные Соображения
В то время как приведенная выше команда, безусловно, сделает свое дело, у меня была некоторая конструктивная критика в комментариях ниже, которая указала на некоторые вещи, которые вы также могли бы включить.
- То
grep
Предоставленное мной может привести к случайному возвращению значения "K", если имя каталога или файла имеет заглавную букву G или M. Если вы абсолютно не хотите, чтобы отображался какой-либо из K-значных каталогов, вы бы хотели, чтобы ваша игра с регулярными выражениями была более креативной и сложной. например.grep -E "^[0-9\.]*[MG]"
-
Если вы знаете, с каким диском проблема, и поверх него установлены другие диски, на которые вы не хотите тратить время, включая поиск, вы можете добавить
-x
флаг на вашdu
команда. Описание справочной страницы этого флага:-x, --one-file-system skip directories on different file systems
Вы можете отсортировать выходные данные
du
команда так, чтобы самое высокое значение было внизу. Просто добавьте это в конец команды:| sort -h