Почему df показывает нет места, а du показывает что место должно быть?

Команда df показывает свободное место на уровне файловой системы, а du — размер файлов и директорий, видимых в текущем каталоге.

Короткий ответ

Что ответить на собеседовании

Команда df показывает свободное место на уровне файловой системы, а du — размер файлов и директорий, видимых в текущем каталоге.

Подробный разбор

Ответ с пояснениями

Команда df показывает свободное место на уровне файловой системы, а du — размер файлов и директорий, видимых в текущем каталоге.

Причины, почему df может показывать, что места нет, а du — что место есть:

  • Удалённые, но открытые файлы: Если файл был удалён из каталога, но процесс всё ещё держит его открытым, du его не увидит, а df учтёт занятое место.
  • Файлы вне видимой директории: du считает только указанную директорию, а df — всю файловую систему.
  • Скрытые или смонтированные каталоги: Если есть точки монтирования или скрытые файлы, du может не учитывать их.

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

Чтобы найти такие файлы, можно использовать lsof:

lsof +L1

Это покажет открытые удалённые файлы, занимающие место.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее