Как узнать размер файлов или папок в Linux

Администрирование 5 мин. на чтение

Иногда возникает необходимость не просто получить данные о размере файла или файлов в директории, а также на целом разделе вашего Linux сервера, но и провести некоторые манимуляции с этими данными. В таких случаях инструмент du в Linux является мощнейшим и просто незаменимым для любого системного администратора. А в сочетании с другими утилитами - он становится вне конкуренции.
В данной короткой статье мы рассмотрим основные возможности утилиты du и надеемся, что независимо от того, являетесь ли вы опытным пользователем Linux или только начинаете свой путь, Вы найдёте в этом руководстве что-то полезное.

 

 

Использование команды du

 

Самый простой способ узнать размер файлов и папок в Linux — использовать команду «du» disk usage, что в переводе с английского буквально означает использование диска.

 

Чтобы проверить размер определенного файла:

 

du -h filename

 

 

Чтобы проверить размер папки и ее содержимое:

 

du -h folder name

 

Добавление опции «-h» делает вывод удобочитаемым, показывая размеры в более понятном формате.

 

 


Вот основные опции утилиты:

-a, --all - выводить размер для всех файлов, а не только для директорий, по умолчанию размер выводится только для папок;
-B, --block-size - указать единицы вывода размера, доступно: K,M,G,T,P,E,Z,Y для 1024 и KB, MB и так далее для 1000;
-c, --total - выводить в конце общий размер всех папок;
-d, --max-depth - максимальная глубина вложенности директорий;
-h, --human-readable - выводить размер в единицах измерения удобных для человека;
--inodes - выводить информацию об использованию inode;
-L, --dereference - следовать по всем символическим ссылкам;
-l, --count-links - учитывать размер файла несколько раз для жестких ссылок;
-P, --no-dereference - не следовать по символическим ссылкам, это поведение используется по умолчанию;
-S, --separate-dirs - не включать размер подпапок в размер папки;
--si - выводить размер файлов и папок в системе си, используется 1000 вместо 1024;
-s, --summarize - выводить только общий размер;
-t, --threshold - не учитывать файлы и папки с размером меньше указанного;
--time - отображать время последней модификации для файла или папки, вместо времени модификации можно выводить такие метки: atime, access, use, ctime;
-X, --exclude - исключить файлы из подсчёта;
-x, --one-file-system - пропускать примонтированные файловые системы;
--version - вывести версию утилиты.

 

 

Примеры

 

Отображение размеров в отсортированном порядке

 

Иногда вам может потребоваться отсортировать файлы и папки в зависимости от их размеров. Для этого команду «du» можно комбинировать с другими командами.

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

 

du -ch | sort -rh

 

Эта команда сортирует выходные данные в обратном порядке, показывая сначала самые большие файлы или папки.

 

 


Рекурсивная проверка размеров

Если вы хотите проверить размеры файлов и папок в подкаталогах, вам пригодятся опции «-a» и «-d».

Чтобы проверить размер каждого файла, включая файлы в подкаталогах:

 

du -ah

 

 

Чтобы проверить размер каждого подкаталога:

 

du -h --max-depth=1

 

Опция '--max-depth=1' ограничивает глубину рекурсии непосредственными подкаталогами.

 

 

Использование ncdu для интерактивного исследования


Для более интерактивного и визуально привлекательного отображения вы можете использовать команду «ncdu». Установить ncdu можно с помощью команд:

 

sudo apt-get install ncdu # For Debian/Ubuntu
sudo yum install ncdu # For CentOS/RHEL

 

После установки запустите:

 

ncdu

 

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

 

 


Поиск больших файлов


Если вы особенно заинтересованы в идентификации больших файлов, команда «find» может оказаться полезной.

Чтобы найти файлы размером больше указанного (например, 100 МБ) - выполните следующую команду:


find /path/to/search -type f -size +100M


Эта команда ищет файлы размером более 100 МБ в указанном каталоге.

 

 

Поиск последнего измененного файла

Для показа вместе с информацией о занимаемом месте информации о времени последней модификации любого файла в директории или в любых поддиректориях используется флаг --time.

 

du -ha --time /home/

 

 

 

Заключение


Мы привели лишь малую часть возможностей утилиты du. Если Вы планируете развивать свои навыки администрирования Линукс серверов - первым делом мы рекомендуем Вам ознакомиться с официальным мануалом по использованию данной утилиты. И хотя в наше время в сети очень много разнообразных примеров её использования базовая информация всегда важна и усвоив её, Вы самостоятельно сумеете комбинировать различные параметры для достижения необходимого Вам результата.

Jan. 31, 2024, 9:07 a.m.