Блог компании 3v-Hosting
Как узнать размер файлов или папок в 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. Если Вы планируете развивать свои навыки администрирования Линукс серверов - первым делом мы рекомендуем Вам ознакомиться с официальным мануалом по использованию данной утилиты. И хотя в наше время в сети очень много разнообразных примеров её использования базовая информация всегда важна и усвоив её, Вы самостоятельно сумеете комбинировать различные параметры для достижения необходимого Вам результата.