Умение работать с данными размеров дисков и папок в системе Linux один из важных моментов, которые должен уметь решать администратор сервера. На нашем сайте уже были посты о различных командах для просмотра информации о системе, в частности такой команды как df, которая позволяют получать информацию о разделах, их размеров в частности. В данном посту мы рассмотрим команду просмотра информации о размерах папок в системах Unix.
Для просмотра информации о занимаемом объеме файлов и папок системе мы можем воспользоваться стандартной программой для Unix систем – du (сокр. disc usage).
Синтаксис команды du
du [опции] [каталоги_или_файлы]
Опции команды du
–b вывод информации в байтах
–c вывод итоговой информации об использовании дисковой памяти
–k вывод информации в килобайтах(по умолчанию)
–s вывод итоговой информации об использовании дискового пространства без информации о каталогах
-h вывод информации в человеко-читаемом виде
Примеры использования команды du
Чтобы показать общий объем текущего каталога, со всеми вложенными файлами и подкаталогами, можно воспользоваться командой du с опцией –sh:
du –sh
Так же можно подсчитать размер всех файлов и директорий в текущем каталоге, а затем вывести данные в виде списка, для этого к опции указанной выше следует добавить звездочку — *:
du -sh *
Так же можно просмотреть размеры всех вложенных файлов и подпапок, однако стоит помнить, что в для больших объемов данных может потребоваться значительное время пока команда сможет выполниться, и в некоторых случаях это не всегда рационально. Если все-таки процесс затянулся на длительное время, вы всегда можете его отметить посредством комбинации клавиш Ctrl+C.
du -h
Для более удобного восприятия данных есть возможность сортировки списка по занимаемому объему. Для этого следует ввести команду со следующими опциями:
du -s *| sort –nr
Команда отобразит список файлов и папок отсортированный по объему занимаемых данных, величина будет указываться в килобайтах.
То же самое, только в мегабайтах:
du -sm *| sort –nr
Казалось бы, более удобная опция h в данном случае была весьма кстати (вывод в Kb, Mb, Gb), но, к сожалению, она здесь не подходит, но есть выход – это использовать такую команду:
du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done
Строка ввода команды получилась достаточно длинная, но вывод при этом получается довольно читабелен для глаз человека.