Yandex
Обновить настройки cookies

Команды du и df показывают разный объем доступного дискового пространства. Что происходит?

Вам нужно понять, что на самом деле делают команды du и df.
 
du обходит дерево каталогов, измеряя, сколько места занимает каждый файл, и выдает вам общее пространство.
 
df просто запрашивает файловую систему на предмет оставшегося объема. Выглядит это одинаково, однако файл, в котором нет записей в каталоге, повлияет на df, но не повлияет на du
 
Когда программа использует файл, а вы его удаляете, файл фактически не удаляется из файловой системы до тех пор, пока программа не прекратит его использовать. Однако файл немедленно удаляется из списка каталогов. Вы можете легко увидеть это на примере программы типа more
 
Предположим, у вас есть файл такого размера, что его наличие влияет на вывод команд du и df. (Поскольку диски в наше время могут быть очень большими, это может быть очень большой файл!) Если вы удалите файл, пока more работает с ним, команда more не пострадает и не сообщит, что не может просмотреть файл. Запись о файле просто удаляется из каталога, поэтому другие программы или пользователи не смогут получить к нему доступ.
 
Команда du покажет, что файл исчез - она просматривает дерево каталогов, и файла там не будет. 
 
df покажет, что он все еще там, поскольку файловая система знает, что more все еще использует это место. Как только вы закончите с more, команды du и df придут в соответствие. 
 
Обратите внимание, что подсистема Soft Updates может задерживать освобождение дискового пространства; вам может потребоваться подождать до 30 секунд, прежде чем изменения будут замечены!
28 Apr 2024, 18:32:10