Як зрозуміти, що займає місце на диску?


86

Я шукаю альтернативу Linux для WinDirStat . Я хотів би знати, що займає місце на моїх жорстких дисках.

Переважна програма, яка працює на консолі та не потребує інтерфейсу користувача.


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, якщо є великий під-підкаталог, його розгортання буде відображатися багато разів (для цього dir та кожного з батьків dir) у верхній частині результатів, а IMHO, що відволікає від справжнього проміжку. Використання "ncdu", запропонованого нижче, може допомогти у цьому, я спробую це. =)
лапо

2
Я знаходжу параметр -size "знайти" і корисним, оскільки він дозволяє знаходити всі файли під певним. Принаймні для пошуку GNU, ви можете зробити щось на кшталт: "find. -Size + 100M", щоб знайти файли розміром більше 100M нижче поточного каталогу.
габе.

89

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

Знімок екрана ncdu


Якщо ви добре з програмою GUI, то Filelight - це найближча річ до WinDirStat, який я знайшов; він показує графічний вигляд споживання місця:

Знімок екрана Filelight

Мовляв ncdu, Filelight дозволяє вибрати заданий каталог для отримання розбивки для цієї каталоги


4
ви не вважаєте, що QDirStat ближче до WinDirStat?
Янус Троельсен

39

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

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


16
Нічого собі, я ніколи не усвідомлював цього (я думаю, що "Win" від імені повинен був бути подарунком). Один раз колега запитав мене, чи є версія Linux WinSCP ; Я загинув всередині трохи
Майкл Мрозек

3
@ чіткий коментар. ой. Просто ой.
Девід Онелл

2
Зауважте, що він буде називатися K4DirStat для Ubuntu, якщо встановити через програмний центр
y3sh

абоsudo apt-get install k4dirstat
y3sh

34

Ще одна програма GUI: baobab

alt текст


У ділі, якщо я на Ubuntu, я не буду намагатися шукати будь-яку альтернативу. baobapдостатньо просто
phunehehe

Він також показує кількість файлів, які іноді потрібно перевірити, а також простір на диску
golimar

9

Використовуйте QDirStat (раніше KDirStat).

Він включає сценарій perl, який генерує кеш-файл на сервері / консолі без необхідності запуску / встановлення інтерфейсу користувача; перенесіть його на робочий стіл і перегляньте його у клієнті gui.

Детальну інформацію див. У https://unix.stackexchange.com/a/256516/186308 .


це смішно швидко. дуже приємний інструмент
phil294

7

Я віддаю перевагу наступному командному рядку:

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

Розбивши його, duпоказує використання диска; -sговорить надрукувати загальну кількість для кожного аргументу (кожен елемент у поточній директорії), -mкаже, показувати розмір у Мегабайти. Це полегшує роботу з сортуванням; Сорт насправді не розуміє -hвихід. -xІгнорує інші файлові системи; це корисно при спробі пошуку космічних свиней /var, і /var/spool/fooце інша файлова система.


Чи не використовується верхня відповідь du?
муру

Так, але du / home в моїх системах повертає десятки тисяч файлів; Мені рідко цікаво, що таке (скажімо) 100 найбільших із цих файлів; Я, як правило, хочу знати, які підкаталоги займають найбільше місця.
П Джослін

Замість -s я вказав --max-width = 2, оскільки я хотів спустити один каталог вниз із кореневого каталогу, але ваша відповідь вказала мені в цьому напрямку. Дякую!
Джон Ейсбернер

6

Також є цей класний сценарій python від /www.vrplumber.com/programming/runsnakerun/

bzr branch lp:~mcfletch/squaremap/trunk squaremap

Це не найбагатші функції, але він працює з одного сценарію python, тому він надзвичайно портативний.

alt текст


6

Якщо ви подивилися на екран about на windirstat, він показав, що він заснований на kdirstat.

http://kdirstat.sourceforge.net/


Мені подобається відповідь - але ви могли б додати якийсь контекст або деталі?
Volker Siegel

4

Ви також можете спробувати GD Map , інший інструмент GUI, заснований на картах.


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:

ls -lrSh

1

Duc ( https://duc.zevv.nl/ ) працюватиме з командного рядка.

Його можна встановити і використовувати так у Debian 9:

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

За допомогою цього ви отримаєте файл, названий duc.pngу поточному каталозі. Тепер ви можете скопіювати цей файл на інший комп'ютер із графічним інтерфейсом, і він виглядатиме так: duc.png

ПРИМІТКА: Duc - це заміна інструменту, який @OCTAGRAM згадав у своїй відповіді.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.