du und df auf dem Mac führen zu unterschiedlichen Ergebnissen

783
Ronald S. Bultje

Ich versuche herauszufinden, wohin mein HD-Speicherplatz geht. dfsagt mir das:

bash-3.2$ df -h / Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1 148Gi 137Gi 11Gi 93% 35980809 2791381 93% / 

Die grundlegenden Informationen hier sind richtig. Meine Festplatte ist 160 GB in log10 (1000) Einheiten, das sind 148 GB in log2 (1024) Einheiten. df -hAuf dem Mac werden log2-Einheiten zurückgegeben, sodass die Informationen korrekt sind. OK, also 137 GB werden in Log2-Einheiten verwendet. Woher? Lass uns benutzen du:

bash-3.2$ sudo du -d 1 -h / Password: 1.0G /.DocumentRevisions-V100 40M /.fseventsd 2.7G /.Spotlight-V100 0B /.Trashes 0B /.vol 33G /Applications 2.3M /bin 0B /cores 0B /Datarescue 4.5K /dev 1.0K /home 15M /Incompatible Software 8.3G /Library 0B /lost+found 1.0K /net 0B /Network 7.3G /opt 15M /Payloads 8.3G /private 1.1M /sbin 6.0G /System 60G /Users 1.1G /usr 4.0K /Volumes 128G / 

du -hverwendet auch log2-Einheiten. Und so werden Sie wahrscheinlich meine Ausgabe sehen: Hier fehlen 9 GB (tatsächlich werden 128 GB verwendet, aber 137 GB werden als verwendet gemeldet). Wie finde ich heraus, wohin das gegangen ist?

(Ich sehe diese Frage mehrmals in der Vergangenheit wiederholt. Das Problem dort ist normalerweise, dass die Leute nicht du als root ausgeführt haben, also einige Dateien enthalten, und das wurde in stderr gemeldet - aber ich habe eindeutig als root gelaufen. Es wurden keine Fehler in Bezug auf nicht lesbare Dateien in stderr gemeldet.)

[bearbeiten]

Um die Antwort unten zu verdeutlichen, habe ich das Problem behoben, indem "sudo gdu --apparent-size -h -d 1 /" anstelle von "sudo du -d 1 -h /" verwendet wurde, und jetzt werden 139GB ordnungsgemäß angezeigt nahe genug an 137/148, wie von df berichtet.

0

2 Antworten auf die Frage

1
Run CMD

Ich denke, in Ihrem Fall kann es so einfach sein df, in Gibibyte zudu -h berichten, während Sie in Gigabyte berichten, es sei denn, Sie ersetzen es -hdurch --si.

Z.B

> du -s -h 303G > du -s --si 326G 
df -H (in 1000-Einheiten) berichtet über die Verwendung von 147 / 158GB und df -h (in 1024-Einheiten) über die Verwendung von 137 / 148GiB. Keines dieser beiden ist in der Nähe von 128 GB, was du berichtet, und das ist in 1024-Einheiten (laut man du). Ronald S. Bultje vor 9 Jahren 0
@ RonaldS.Bultje In diesem Fall sollten Sie auch die Option "--apparent-size" von "du" in Betracht ziehen. Run CMD vor 9 Jahren 1
Ah! Ja, das hat einen großen Unterschied gemacht, also auf Mac ist das eigentlich "gdu --apparent-size -h /" (du hat diese Option nicht), aber jetzt beträgt die Summe tatsächlich 139 GB. Vielen Dank! Ronald S. Bultje vor 9 Jahren 0
0
Mircea

Kam über diese. Ich habe das ncdu-Dienstprogramm auf Ubuntu verwendet, aber Sie können es auch auf dem Mac installieren.

https://apple.stackexchange.com/questions/173767/terminal-command-ncdu

Dies sollte Ihnen die Option geben, sowohl die Größe als auch die scheinbare Größe anzuzeigen.

Denken Sie auch daran, dass es gelöschte Dateien gibt, die "noch existieren", dh Sie können sie mit finden

lsof | grep deleted

( https://access.redhat.com/solutions/2316 )