Как узнать размер папки в linux

Материал из Home wiki
Версия от 23:10, 8 ноября 2018; KOleg (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Как узнать размер папки в linux?

Просмотр размера текущей папки

Чтобы показать объем просто одного текущего каталога (со всеми вложенными файлами + подкаталогами) подойдёт команда du с ключиком -sh.

Вот пример, как определить размер директории данного сайта:

 du -sh

 root@Debian:/var/www/linuxcmd.ru# du -sh
 25M     .
 root@Debian:/var/www/linuxcmd.ru#

Посмотреть размеры всех папок

Если нужно посчитать вес всех директорий плюс файлы — добавляем звёздочку:

du -sh *

root@Debian:/var/www/linuxcmd.ru# du -sh *
4.0K    unix.html
8.0K    authorize.php
4.0K    cron.php
2.1M    files
4.0K    centos.html
72K     img
2.2M    includes
4.0K    index.php
4.0K    install.php
912K    misc
12M     modules
196K    profiles
4.0K    robots.txt
80K     scripts
7.0M    sites
696K    themes
8.0K    translations
20K     update.php
4.0K    web.config
4.0K    xmlrpc.php
0       ubuntu.txt
root@Debian:/var/www/linuxcmd.ru#

Отобразить размеры всех вложенных папок

Чтобы проверить информацию в том числе вообще по всем папкам, вместе со вложенными - понадобится самый короткий вариант:

 du -h

Внимание: если такой случайно запустить в корне на объёмном диске с большим количеством информации - лучше сразу жмите CTRL-C, т.к. во-первых, иначе придётся сильно подождать ;) , во-вторых, десятки-сотни экранов информации будут бессмысленными. Потому эта простая команда должна использоваться лишь для, соответственно, простых случаев.

Отсортировать папки по объёму

du -s *| sort -nr

Покажет объём в килобайтах с сортировкой - самые большие папки/файлы сверху. Если нужно в мегабайтах:

du -sm *| sort -nr

К сожалению более удобный ключик h ("human" - автовыбор кило-мега-гига) в данном случае (du -sh *| sort -nr) не подойдёт, т.к. сортировка идёт по "числам" (не учитывая, что это KB/MB/GB). Для этого придётся использовать длинную команду:

du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done

root@Debian:/var/www/linuxcmd.ru# du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done
12M     modules
7.0M    sites
2.2M    includes
2.1M    files
912K    misc
696K    themes
196K    profiles
80K     scripts
72K     img
20K     update.php
8.0K    translations
8.0K    authorize.php
4.0K    xmlrpc.php
4.0K    web.config
4.0K    robots.txt
4.0K    install.php
4.0K    index.php
4.0K    centos.html
4.0K    cron.php
4.0K    unix.html
0       ubuntu.txt
root@Debian:/var/www/linuxcmd.ru#

Получается "заумно", зато всё красиво!

Такую можно уже запускать даже в корне, обождав (если файлов много - серьёзно обождав) получим нечто типа:

root@Debian:/# du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done
du: cannot access `proc/30976/task/30976/fd/4': No such file or directory
du: cannot access `proc/30976/task/30976/fdinfo/4': No such file or directory
du: cannot access `proc/30976/fd/4': No such file or directory
du: cannot access `proc/30976/fdinfo/4': No such file or directory
314M    usr
291M    var
120M    lib
76M     tmp
34M     home
18M     boot
4.6M    bin
4.4M    sbin
3.0M    etc
56K     dev
32K     root
16K     lost+found
4.0K    srv
4.0K    selinux
4.0K    opt
4.0K    mnt
4.0K    media
0       sys
du: cannot access `proc/31009/task/31009/fd/4': No such file or directory
du: cannot access `proc/31009/task/31009/fdinfo/4': No such file or directory
du: cannot access `proc/31009/fd/4': No such file or directory
du: cannot access `proc/31009/fdinfo/4': No such file or directory
0       proc
root@Debian:/#