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

Командите 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