Как понять, что занимает дисковое пространство?

86

Я ищу альтернативу Linux для WinDirStat . Я хотел бы знать, что занимает место на моих жестких дисках.

Программа, которая работает на консоли и не требует пользовательского интерфейса, является предпочтительной.

ripper234
источник
ncduмой предпочтительный ответ, но я вижу, что первый ответ говорит, что у вас есть проблемы с ним, которых нет в вашем вопросе.
SDsolar

Ответы:

74

Исходя из ваших проблем при установке ncdu, моя рекомендация будет использовать duи sortвместе.

Например:

  • du /home | sort -rn (будет искать все файлы / каталоги в / home и сортировать их по величине к наименьшему.
  • du -h /home | sort -rh(то же самое, но покажет это в МБ / КБ / и т. д.). Обратите внимание, что для этого требуется coreutils 7.5 или новее ( sort --versionдля проверки).

Вы можете заменить / home любым каталогом на ваш выбор.

Нью-Джерси
источник
Это отлично, спасибо за помощь. Мой coreutils - 5.97 - вот почему порядок сортировки du -h неправильный?
ripper234
Да, вам придется согласиться du /home | sort -rnс coreutils 5.97 или использовать «магию» с perl и т. Д., Как продемонстрировано на ServerFault ( serverfault.com/q/62411/60012 )
NJ
2
OTOH, если есть большой подкаталог, его разметка будет отображаться несколько раз (для этого каталога и каждого родительского каталога) в верхней части результатов, и IMHO, что отвлекает от истинного раздувания. Использование "ncdu", предложенного ниже, может помочь с этим, я попробую. =)
Lapo
2
Я также нахожу полезной опцию -size, так как она позволяет вам находить все файлы в определенной папке. По крайней мере, для GNU find вы можете сделать что-то вроде: «find. -Size + 100M», чтобы найти файлы размером более 100M под текущим каталогом.
таращиться
89

Если вам нужен инструмент командной строки, я предпочитаю ncdu , версию ncurses du. Он сканирует диск (или заданную папку), а затем показывает использование пространства верхнего уровня; Вы можете выбрать заданный каталог, чтобы получить соответствующую сводку для этого каталога, и вернуться без необходимости повторного анализа:

Снимок экрана ncdu


Если у вас все в порядке с программой с графическим интерфейсом, Filelight - самая близкая вещь к WinDirStat, которую я нашел; это показывает графическое представление потребления пространства:

Снимок экрана Filelight

Как ncdu, например, Filelight позволяет вам выбрать данный каталог, чтобы получить разбивку на этот каталог

Михаил Мрозек
источник
4
ты не думаешь, что QDirStat ближе к WinDirStat?
Янус Троелсен
39

Вы должны знать, что WinDirStat на самом деле является портом KDirStat , который является программой Linux / KDE. Итак, если вы ищете альтернативу WinDirStat для Linux, вам, безусловно, стоит взглянуть на KDirStat . Он уже упакован в большинстве дистрибутивов, просто установите его.

Другой альтернативой является FileLight, который уже упоминал Майкл Мрозек, и плагин Konqueror fsview(вы можете запустить его отдельно из командной строки).

Жулиано
источник
16
Вау, я никогда не осознавал этого (думаю, «Победа» в названии должна была быть дешевой). Коллега однажды спросил меня, есть ли версия WinSCP для Linux ; Я немного умер внутри
Михаил Мрозек
3
@ предыдущий комментарий. Уч. Просто ай.
Дэвид Онеилл
2
Обратите внимание, что он будет называться K4DirStat для Ubuntu при установке через центр программного обеспечения
y3sh,
илиsudo apt-get install k4dirstat
y3sh
34

Еще одна программа с графическим интерфейсом: баобаб

альтернативный текст

sudobash
источник
На самом деле, если я нахожусь на Ubuntu, я не буду искать другую альтернативу. baobapдостаточно
phunehehe
Он также показывает количество файлов, которые иногда необходимо проверить, а также дисковое пространство
golimar
9

Используйте QDirStat (ранее KDirStat).

Он включает в себя сценарий perl, который генерирует файл кэша на сервере / консоли без необходимости запуска / установки пользовательского интерфейса; перенесите его на свой настольный компьютер и просмотрите в клиенте графического интерфейса.

См. Https://unix.stackexchange.com/a/256516/186308 для получения подробной информации.

icyerasor
источник
это смехотворно быстро. очень хороший инструмент
phil294
7

Я предпочитаю следующую командную строку:

$  du -s -m -x * | sort -n

Разбивая его, duпоказывает использование диска; -sговорит, что выводит сумму для каждого аргумента (каждого элемента в текущем каталоге), -mговорит, показывает размер в мегабайтах. Это облегчает сортировку для работы; сортировка не совсем понимает -hвывод. -xИгнорирует другие файловые системы; это полезно при попытке найти космических свиней /var, и /var/spool/fooэто другая файловая система.

П Жослин
источник
Разве верхний ответ уже не используется du?
Муру
Да, но du / home в моих системах возвращает десятки тысяч файлов; Меня редко волнует, что (скажем) 100 самых больших из этих файлов; Обычно я хочу знать, какие подкаталоги занимают больше всего места.
P Joslin
Вместо -s я указал --max-deep = 2, так как я хотел перейти на один каталог вниз от корневого, но ваш ответ указал мне в этом направлении. Спасибо!
Джон Эйсбренер,
6

Также есть этот классный скрипт на python от /www.vrplumber.com/programming/runsnakerun/

bzr branch lp:~mcfletch/squaremap/trunk squaremap

Это не самый многофункциональный, но он запускается из одного скрипта Python, поэтому он очень переносим.

альтернативный текст

Falmarri
источник
6

Если вы посмотрели на экран about на windirstat, он показал, что он основан на kdirstat.

http://kdirstat.sourceforge.net/

DF1eCH
источник
Мне нравится ответ - но не могли бы вы добавить контекст или детали?
Фолькер Сигел
4

Вы также можете попробовать GD Map , еще один инструмент с графическим интерфейсом, основанный на древовидных картах.

Bruno
источник
3

xdiskusage очень гибок, легок с очень скудными зависимостями, легко компилируется ..

Оно показывает дерево слева направо, по которому можно перемещаться с помощью клавиш мыши или клавиш со стрелками, увеличивать масштаб (щелкать или вводить), скрывать некоторые части для лучшего обзора, изменять порядок сортировки, количество цветов и т. Д. С помощью клавиш или контекстного меню.

Он настолько легкий, что вы можете использовать его на удаленном канале SSH с хорошей производительностью. В этом случае я рекомендую параметр -qкомандной строки, чтобы отключить индикатор выполнения, который отображается во время обхода файлов.

Вы также можете при желании запустить duсебя заранее.

Одна ситуация - это удаленная файловая система, которая заполнена или почти заполнена. При запуске этой системы du -ak | gzip >log_of_disk_usage.txt.gzизвлеките выходные данные и запустите gzip -dc log_of_disk_usage.txt.gz | xdiskusage -aqлокально.
Или даже ssh myremotesystem "cd /filesystem_near_full/ ; du -ak | gzip" > log_of_disk_usage.txt.gzхранить результат локально, ничего не записывая удаленно.

xdiskusage не предлагает изменять файловую систему (например, перейти в корзину и т. д.), но вы можете скопировать путь в буфер обмена и вставить его в файловый менеджер, терминал и т. д.

скриншот xdiskusage

Стефан Гурихон
источник
2

Я недавно использовал инструмент командной строки (CLI, а не TUI): http://zevv.nl/play/code/philesight/

Он создает файл PNG, который вы можете просмотреть в другом месте. У этого также есть скрипт CGI.

Скорее всего, вы не ограничены текстовым режимом на своей локальной рабочей станции, поэтому он должен быть подходящим.

октаграмма
источник
1

Также, чтобы увидеть файлы в определенном каталоге, отсортированные по размеру после того, как вы нашли каталог, используя du use:

ls -lrSh
Водин
источник
1

Дык ( https://duc.zevv.nl/ ) будет работать из командной строки.

Он может быть установлен и использован следующим образом в Debian 9:

# apt install duc
# duc index /
# duc graph /

При этом вы получите файл с именем duc.pngв текущем каталоге. Теперь вы можете скопировать этот файл на другой компьютер с графическим интерфейсом, и он будет выглядеть так: duc.png

ПРИМЕЧАНИЕ. Duc - это замена инструмента, о котором @OCTAGRAM упомянул в своем ответе.

Хайме Хаблутцель
источник