Inkonsistente Ausgabe des `du`-Befehls

Inkonsistente Ausgabe des `du`-Befehls

Warum ist die Ausgabe von

du -sch ./

nicht identisch mit

du -sch ./*

Ich habe es z. B. du -schim Home-Verzeichnis meines Benutzers ausgeführt und 51 GB erhalten, aber wenn ich es du -sch *im selben Verzeichnis ausführe, sind es 47 GB. Zuerst dachte ich, es liege vielleicht an versteckten Dateien, aber das erklärt nicht die fast 4 GB an versteckten Dateien/Ordnern.

Ich habe das Handbuch für das Festplatten-Dienstprogramm gelesen, konnte aber keine Erklärung finden.

Antwort1

Zuerst dachte ich, es liege vielleicht an den versteckten Dateien, aber das erklärt nicht die fast 4 GB an versteckten Dateien/Ordnern.

Wie hast du das gemessen? Ich denke, duTunhaben Sie 4 GB an versteckten Dateien/Verzeichnissen, oder vielleicht sogar mehr (in gewissem Sinne), wenn Hardlinks beteiligt sind.

Dies wird Ihnen sagen (ich habe es weggelassen, -hum genauere Ergebnisse zu erhalten; tailsoll nur das „Gesamtergebnis“ übergeben; getestet in bash):

du -sc ./{.[!.],..?}*  | tail -n 1   # hidden
du -sc ./*             | tail -n 1   # non-hidden
du -sc ./{.[!.],..?,}* | tail -n 1   # hidden and non-hidden by wildcards
du -sc ./              | tail -n 1   # directory as a whole

(Syntax übernommen ausdiese Antwort).

Der erste Befehl ist das, was Ihnen fehlt. Erhalten Sie die Summe des ersten und des zweiten Ergebnisses. Sie entspricht den letzten beiden Ergebnissen, es sei denn ...

Es sei denn, es gibt fest verknüpfte Dateien zwischen dem versteckten und dem nicht versteckten Teil. In diesem Fall wird die Summe noch größer sein, weilDiese Dateien werden zweimal gezählt, wenn Sie sie manuell summieren, aber nur einmal, wenn dusie in einem einzigen Durchgang für Sie summiert werden. In diesem Fall wird von versteckten Dateien/Verzeichnissen sogar noch mehr Speicherplatz beansprucht, als Sie denken (obwohl ein Teil dieses Speicherplatzes mit dem nicht versteckten Teil „geteilt“ wird). Beachten Sie, dass es-lMöglichkeit vondudas dieses Verhalten steuert:

-l, --count-links
Größen um ein Vielfaches zählen, wenn hart verknüpft

verwandte Informationen