12.02.2010

Консольный аналог "Анализатора использования дисков"

В Gnome есть очень полезная вещь: Приложения -> Стандартные -> "Анализатор использования дисков" (может быть есть и в KDE, но я его уже давно не видел) - помогает, когда нужно провести ревизию жесткого диска, определить какие папки сколько занимают. Можно ли провести ревизию диска в консоли? Под катом решение.


Эта команда будет полезна, например во время аудита жесткого диска на сервере. Выводит название директорий и их размер в удобочитаемом виде. Обрабатываются и скрытые каталоги.

du -sk ./* | sort -nr | awk 'BEGIN{ pref[1]="K"; pref[2]="M"; pref[3]="G";} { total = total + $1; x = $1; y = 1; while( x > 1024 ) { x = (x + 1023)/1024; y++; } printf("%g%s\t%s\n",int(x*10)/10,pref[y],$2); } END { y = 1; while( total > 1024 ) { total = (total + 1023)/1024; y++; } printf("Total: %g%s\n",int(total*10)/10,pref[y]); }'

Вот, что получается на выхлопе на примере моего /home/user/:
37.4G ./music
28.8G ./soft
15.5G ./books
12.9G ./mp3books
7G ./Downloads
4.8G ./psy
3G ./Pictures
855.9M ./backup
666.4M ./Documents
460.7M ./coding
260.2M ./Ubuntu
188.7M ./share
76.8M ./cxoffice
41.5M ./Рабочий
30.5M ./firefox-3.6
28.5M ./analiz.tiff
15.9M ./Картинки
15.2M ./172.16.0.3
11.6M ./libflashplayer.so
5.7M ./tiffsplit
2.3M ./graph
760K ./torrents
372K ./Dropbox
368K ./slimrat
348K ./flashgot.yzg27why.default
284K ./scripts
136K ./PDF
136K ./iMacros
120K ./errorlogs
116K ./bin
92K ./hs_err_pid4232.log
88K ./mencoder
56K ./проекты
36K ./mylib.db
12K ./Загрузки
4K ./Шаблоны
4K ./Документы
4K ./Видео
4K ./testdisk.log
4K ./Mail
4K ./gdocs.lang
4K ./gdocs.dat
4K ./errors.log
4K ./dwhelper
4K ./dead.letter
0K ./desktop
Total: 106.4G


Источник

P.S. о сколько нам открытий чудных готовит просвещения дух... (спасибо комметирующим читателям) ncdu делает тоже, что и скрипт + возможность перехода по каталогом с подсчетом их содержимого.