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