(2 odpovědi)
Uzavřeno před 7 lety.
Použil jsem du k vypsání všech složek a řazení podle velikosti, výsledky jednoduše neodpovídají tomu, kolik místa na disku je využito (pomocí df). Rozdíl je asi 20 G, proč?
[[email protected] lib]# du --max-depth=1 -h /| sort -n -r 310M /lib 123M /root 96K /dev 88M /etc 75G / 73G /var 30M /sbin 20M /boot 20K /tmp 18M /lib64 16K /mnt 16K /lost+found 12K /home 8.0K /srv 8.0K /selinux 8.0K /opt 8.0K /misc 8.0K /media 7.0M /bin 1.2G /usr 0 /sys 0 /proc [[email protected] lib]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 298G 94G 189G 34% / /dev/sda1 99M 26M 69M 28% /boot tmpfs 2.0G 0 2.0G 0% /dev/shm
Přijatá odpověď:
To proto, že du
a df
měřit různé věci.
man du
říká:
du – odhad využití místa v souboru (…) Shrňte použití disku pro každý SOUBOR , rekurzivně pro adresáře.
a man df
:
df – hlásí využití místa na disku souborovým systémem
Souborové systémy mají tabulky inodů, deníky atd., které nejsou shrnuty pomocí du
. Není to specifické pouze pro Linux, ale spíše specifické pro UNIX (nebo dokonce specifické pro souborový systém UNIX). Protože procesy UNIX používají soubory pro všechno (zjednodušuji), tj. pro zápis do souborů protokolu, může v tomto případě nastat také problém s otevřeným deskriptorem souboru způsobující různé du
a df
výstupy.