Команды df и du в Linux: сколько места на диске и что его заняло
df показывает диски целиком: размер, сколько занято и сколько свободно. du считает, сколько места занимают папки и файлы. Вместе они отвечают на вопрос «куда делось место». Ниже — ключи, примеры для сервера и разбор ответов.
Содержание 7
Что сделать прямо сейчас
- Подключитесь к серверу — инструкция.
- Узнайте, сколько свободно на главном диске:
df -h /. Свободное место — в колонкеAvail. - Узнайте, сколько занимает папка сайта:
sudo du -sh /var/www/example.com. - Найдите самые большие папки:
sudo du -xh -d1 /var 2>/dev/null | sort -h. Самые большие окажутся внизу. - Если в
Use%90% и больше, освободите место по шагам из статьи No space left on device.
df: сколько места на диске
ivan@myserver:~$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 7.5G 12G 40% /| Колонка | Что значит |
|---|---|
Filesystem | диск или его раздел; имя у вас может быть другим |
Size | размер диска |
Used | сколько занято |
Avail | сколько свободно для записи |
Use% | сколько занято в процентах |
Mounted on | папка, к которой подключён диск; / — главный диск |
Буквы после чисел — единицы: K, M, G, T — кибибайты, мебибайты, гибибайты и тебибайты: здесь считают по 1024. Ключ -H считает по 1000 — тогда буквы значат килобайты, мегабайты и гигабайты.
Used плюс Avail может быть меньше Size. На дисках ext4 при создании по умолчанию резервируется 5% места для root, чтобы службы могли работать, даже когда остальные пользователи заполнили диск.
Ключи df
| Команда | Что покажет |
|---|---|
df -h | все диски в понятных единицах |
df -h / | только главный диск |
df -h /var/www/example.com | диск, на котором лежит эта папка |
df -hT | ещё колонку Type — тип файловой системы, например ext4 |
df -h -x tmpfs | все диски, кроме tmpfs |
df -h --total | внизу строку total — все диски вместе |
df -i | не место, а записи для файлов — подробнее в статье No space left on device, а место есть |
Строки tmpfs в ответе df -h — место в оперативной памяти, а не на диске. Когда ищете, где кончилось место, их пропускайте.
du: сколько занимает папка
ivan@myserver:~$ sudo du -sh /var/www/example.com
1.3G /var/www/example.comСлева — размер, справа — папка. -s значит «только итог», без каждой вложенной папки, -h — размер в понятных единицах. Числа у вас будут свои.
| Ключ | Что делает |
|---|---|
-s | показать только итог по каждой указанной папке |
-h | размеры в K, M и G |
-d1 | показать папки только первого уровня; то же — --max-depth=1 |
-a | показать не только папки, но и файлы |
-c | добавить внизу строку total — сумму |
-x | считать только этот диск и не заходить на другие |
-t 100M | не показывать то, что меньше 100 мебибайт |
--exclude='*.log' | не считать файлы, подходящие под шаблон |
Без sudo du не сможет зайти в чужие папки и посчитает меньше, чем занято на деле. Подсчёт большой папки занимает время — дождитесь, пока снова появится строка для ввода команд. Прервать — Ctrl+C.
Самые большие папки
sudo du -xh -d1 /var 2>/dev/null | sort -hdu посчитает каждую папку внутри /var, а sort -h расставит их по размеру: самые большие внизу, последней строкой — сама /var. 2>/dev/null прячет сообщения о папках, которые прочитать нельзя. Спускайтесь в самую большую папку той же командой, пока не найдёте, что заняло место.
Самые большие файлы
sudo du -ah /var/log 2>/dev/null | sort -h | tail -n 10-a добавляет в список файлы, tail -n 10 оставляет десять последних строк — самые большие. Как работает tail — в статье cat, less, head и tail.
Каждая папка и файл в текущей папке
du -sh *Звёздочка подставит все имена в текущей папке. Файлы и папки, имя которых начинается с точки, звёздочка не захватывает.
Почему df и du показывают разное
| Причина | Что сделать |
|---|---|
du без sudo не смог прочитать часть папок | запустите du через sudo |
| файл удалили, но программа, которая в него писала, ещё работает | перезапустите эту программу: место вернётся, когда она закроет файл |
| du считает место, которое файл занял на диске, а не его длину | размер как в ls -l покажет du -h --apparent-size файл |
du с -x не считает другие диски, подключённые внутрь папки | посмотрите их отдельно: df -h |
Удалённый файл остаётся на диске, пока его держит открытым хотя бы одна программа. Поэтому большой журнал не удаляют, а обнуляют — как это сделать, показано в статье No space left on device, раздел «Большой лог одной программы».
Ошибки и как их исправить
| Ответ | Что значит | Что сделать |
|---|---|---|
du: cannot read directory '/var/lib/...': Permission denied | нет прав зайти в папку | запустите du через sudo или Permission denied в Linux |
du: cannot access 'папка': No such file or directory | нет такой папки | проверьте путь и большие буквы командой ls |
df: /путь: No such file or directory | нет такого пути | проверьте путь или наберите df -h без него |
Use% у главного диска 100% | место кончилось | освободите его — No space left on device |
| место есть, а запись не идёт | кончились записи для файлов | No space left on device, а место есть |
Источники
- Справка df для Ubuntu 24.04 — ключи -h, -T, -i, --total и колонки ответа.
- Исходный код coreutils 9.4: df.c — заголовки колонок Filesystem, Size, Used, Avail, Use% и Mounted on.
- Справка du для Ubuntu 24.04 — ключи -s, -h, -d, -a, -c, -x, -t и --exclude.
- Справка sort для Ubuntu 24.04 — ключ -h сортирует размеры вида 2K и 1G.
- Справка unlink для Ubuntu 24.04 — удалённый файл существует, пока его держит открытым хотя бы одна программа.
- Справка mke2fs для Ubuntu 24.04 — ключ -m: доля места для root, по умолчанию 5%.
Сверено 11 октября 2026 года.
Что почитать дальше
- No space left on deviceчто удалить, если диск заполнен.
- Команда findнайти большие и старые файлы по условиям.
- Команда freeсколько свободно оперативной памяти.
- Команды Linux для новичкашпаргалка по командам.
Проверено и обновлено: 11.10.2026