Linux утилита для поиска самых больших файлов / каталогов

155704
Robert Munteanu

Я ищу программу, которая показывает мне, какие файлы / каталоги занимают больше всего места, например:

74% music \- 60% music1 \- 14% music2 12% code 13% other 

Я знаю, что это возможно в KDE3, но я бы предпочел этого не делать - KDE4 или командная строка предпочтительнее.

130
для пользователей Mac, я просто хочу порекомендовать это бесплатное программное обеспечение под названием Disk Inventory X. загрузите его здесь http://www.derlien.com/ его легко использовать для Mac OSX Nimitack 6 лет назад 0

17 ответов на вопрос

189
Daenyth

Я всегда использую ncdu. Это интерактивно и очень быстро.

Да, и это мало! Luke Stanley 13 лет назад 0
Я люблю ncdu. Это одна из моих любимых находок Google. Rob 12 лет назад 5
Вот это да. как я не знал, что это существовало. Спасибо! pixel 12 лет назад 4
+1000 для `ncdu` --- это как` htop` для дискового пространства. Супер полезно! Noah Sussman 11 лет назад 22
поскольку здесь нет ни флагов, ни параметра .config, вот последовательность клавиш, которую вы, вероятно, будете вводить каждый раз, когда запускаете ее, если вам нравится, когда файлы и папки смешиваются и относительная процентная статистика: `[t] [g] [g ] `. rymo 11 лет назад 0
Вы можете сделать его более читабельным с помощью "du -h | sort -h". rudimeier 10 лет назад 0
К вашему сведению: ncdu означает использование диска NCurse hello_harry 7 лет назад 0
130
Sean

Чтобы найти 10 самых больших файлов (linux / bash):

find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

Чтобы найти 10 крупнейших каталогов:

find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

Разница только в том -type .

Обрабатывает файлы с пробелами в именах и создает удобочитаемые размеры файлов в выходных данных. Самый большой файл указан последним. Аргументом tail является количество результатов, которые вы видите (здесь 10 самых больших).

Для обработки пробелов в именах файлов используются два метода. В find -print0 | xargs -0использует нуль разделителей вместо пространств, а вторая xargs -I{}используют новые строки вместо пробелов для завершения ввода элементов.

пример:

$ find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}  76M ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz 76M ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz 76M ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz 76M ./tmp/projects/onthisday/onthisday.tar.gz 114M ./Dropbox/snapshots/weekly.tgz 114M ./Dropbox/snapshots/daily.tgz 114M ./Dropbox/snapshots/monthly.tgz 117M ./Calibre Library/Robert Martin/cc.mobi 159M ./.local/share/Trash/files/funky chicken.mpg 346M ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi 
37
mas

Для быстрого просмотра:

du | sort -n 

перечисляет все каталоги с наибольшим последним.

du --max-depth=1 * | sort -n 

или, опять же, избегая лишних *:

du --max-depth=1 | sort -n 

перечисляет все каталоги в текущем каталоге с наибольшим последним.

(параметр -n для сортировки требуется, чтобы первое поле сортировалось как число, а не как текст, но это исключает использование параметра -h для du, так как нам нужно значительное число для сортировки)

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

* Действительно необходимо. Разве он по умолчанию не включает все файлы в текущем каталоге? Josh Hunt 15 лет назад 3
Нет, * должен быть избыточным. Я не уверен, является ли использование этого признаком хорошей привычки или плохой. Спасибо за указание на это. Я изменил ответ, чтобы отразить его как необязательный. mas 15 лет назад 0
Это хорошо, но результаты не очень дружелюбны. Я обычно обращаюсь к этому: `find {/ path / to / directory} -type f -size + k -exec ls -lh {} \; | awk '' ` deed02392 12 лет назад 0
римская # du --max-глубина = 1 | sort -n du: недопустимая опция - - использование: du [-A] [-H | -L | -P] [-a | -с | -d глубина] [-c] [-l] [-h | -к | -м | -B bsize] [-n] [-x] [-I mask] [file ...] holms 12 лет назад 0
`du -h --max-глубина = 1 2> / dev / null | сортировать -nr | grep -v ^ 0` - немного аккуратнее Stuart Cardall 7 лет назад 0
23
Anton Geraschenko

Для большинства вещей я предпочитаю инструменты CLI, но для использования дисков мне действительно нравится файловая подсветка . Презентация для меня более понятна, чем любой другой инструмент управления пространством, который я видел.

Скриншот Filelight

Filelight - мой лучший инструмент для обрезки космонавтов. Ryan Thompson 15 лет назад 1
Очень хорошее приложение. +1 rpax 10 лет назад 0
Визуально это художественно интригующе, но интуитивно понятно? Просто глядя на это, я понятия не имею, что это представляет. Может кто-нибудь объяснить это? Я пошел на сайт, и я не увидел никаких объяснений. G-Man 9 лет назад 0
Аналогичным инструментом для Mac является DaisyDisk, доступный по адресу http://daisydiskapp.com. computingfreak 8 лет назад 0
20
Nicolas Raoul

Filelight лучше для пользователей KDE, но для полноты (название вопроса является общим), я должен упомянуть, что Baobab включен в Ubuntu, также известный как Disk Usage Analyzer:

enter image description here

Если вы ищете аналог этого на платформе Mac, закажите DaisyDisk. computingfreak 8 лет назад 0
8
Jonik

Инструмент с графическим интерфейсом KDirStat показывает данные как в виде таблицы, так и графически. Вы можете очень быстро увидеть, где используется большая часть пространства.

Я не уверен, что это именно тот инструмент KDE, который вам не нужен, но я думаю, что его все равно следует упомянуть в таком вопросе. Это хорошо, и многие, вероятно, этого не знают - я узнал об этом только недавно.

Спасибо за ответ. Это _exact_ тот же инструмент, который был у меня в KDE3, но я перешел на KDE 4. Robert Munteanu 15 лет назад 0
Вы уверены, что не можете получить kdirstat для KDE4? Jonik 15 лет назад 0
Кдирстат оооочень медленный. Вместо этого используйте `ncdu`. Daenyth 14 лет назад 4
Я просто нажал Ctrl + F, чтобы найти ncdu, и увидел, что я уже проголосовал за @Daenyth Rob 11 лет назад 0
В KDE это просто называется ** k4dirstat **. phihag 10 лет назад 0
@Daenyth больше не правда! Этот инструмент был перестроен как `QDirStat` и имеет мгновенную скорость. понятия не имею, как он это делает, но из приведенных здесь ответов, это, вероятно, лучший Blauhirn 7 лет назад 0
5
nik

Комбинация - это всегда лучший трюк на Unix.

du -sk $(find . -type d) | sort -n -k 1 

Покажет размеры каталогов в килобайтах и ​​отсортирует, чтобы получить самый большой в конце.
Древовидному представлению, однако, понадобится больше фу ... действительно ли это необходимо?

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

Однако вы можете использовать контроль глубины для поиска на определенной глубине.
И, на самом деле, принимайте участие в сканировании намного больше ... в зависимости от того, что вы хотите. Контроль глубины findс помощью -maxdepthи -mindepthможет ограничивать определенную глубину подкаталога.


Вот изощренный вариант для вашей длинной проблемы

find . -type d -exec du -sk {} \; | sort -n -k 1 
Я попробовал это, и я получил много "du: Task: Нет такого файла или каталога" Josh Hunt 15 лет назад 0
Спасибо за ответ. К сожалению, я получаю _bash: / usr / bin / du: список аргументов слишком длинный_ Robert Munteanu 15 лет назад 0
3
Dennis Williamson

Мне нравится gt5 . Вы можете перемещаться по дереву и открывать подкаталоги для детализации. Для отображения результатов используется веб-браузер в текстовом режиме, например lynx. Установите elinks для лучших результатов.

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

2
Josh Hunt

Хотя он не дает вам такой вложенный вывод, попробуйте du

du -h /path/to/dir/ 

Запуск этого в моей папке «Документы» выдает следующее:

josh-hunts-macbook:Documents joshhunt$ du -h 0B ./Adobe Scripts 0B ./Colloquy Transcripts 23M ./Electronic Arts/The Sims 3/Custom Music 0B ./Electronic Arts/The Sims 3/InstalledWorlds 364K ./Electronic Arts/The Sims 3/Library 77M ./Electronic Arts/The Sims 3/Recorded Videos 101M ./Electronic Arts/The Sims 3/Saves 40M ./Electronic Arts/The Sims 3/Screenshots 1.6M ./Electronic Arts/The Sims 3/Thumbnails 387M ./Electronic Arts/The Sims 3 387M ./Electronic Arts 984K ./English Advanced/Documents 1.8M ./English Advanced 0B ./English Extension/Documents 212K ./English Extension 100K ./English Tutoring 5.6M ./IPT/Multimedia Assessment Task 720K ./IPT/Transaction Processing Systems 8.6M ./IPT 1.5M ./Job 432K ./Legal Studies/Crime 8.0K ./Legal Studies/Documents 144K ./Legal Studies/Family/PDFs 692K ./Legal Studies/Family 1.1M ./Legal Studies 380K ./Maths/Assessment Task 1 388K ./Maths [...] 

Затем вы можете отсортировать вывод, передав его по sort

du /path/to/dir | sort -n 
Спасибо, но это не правильно показывает, какие каталоги являются самыми большими. Если я запускаю его в своем домашнем каталоге, вывод будет невозможен. Robert Munteanu 15 лет назад 0
1
Kam

Вот скрипт, который делает это для вас автоматически.

http://www.thegeekscope.com/linux-script-to-find-largest-files/

Ниже приведен пример вывода скрипта:

**# sh get_largest_files.sh / 5**  [SIZE (BYTES)] [% OF DISK] [OWNER] [LAST MODIFIED ON] [FILE]   56421808 0% root 2012-08-02 14:58:51 /usr/lib/locale/locale-archive 32464076 0% root 2008-09-18 18:06:28 /usr/lib/libgcj.so.7rh.0.0 29147136 0% root 2012-08-02 15:17:40 /var/lib/rpm/Packages 20278904 0% root 2008-12-09 13:57:01 /usr/lib/xulrunner-1.9/libxul.so 16001944 0% root 2012-08-02 15:02:36 /etc/selinux/targeted/modules/active/base.linked  Total disk size: 23792652288 Bytes Total size occupied by these files: 154313868 Bytes [ 0% of Total Disc Space ]  *** Note: 0% represents less than 1% *** 

Вы можете найти этот скрипт очень удобным и полезным!

Несмотря на то, что связанный веб-сайт дает инструкции, для вас предпочтительно перефразировать, а затем сослаться на внешний сайт (который в любом случае выглядит как личный блог). Это предотвратит гниение ссылок и поможет большему количеству людей * на этом сайте * Canadian Luke 12 лет назад 2
Ссылка не работает? Danijel 8 лет назад 1