Standardmäßig du
wird jede Datei nur einmal gezählt, wenn sie mehrmals verknüpft ist. Wenn Sie es ausführen du -L bar
, wird die Datei gezählt, da sie nur einmal erreicht wird. Wenn Sie es jedoch ausführen du -L *
, wird es nur gezählt , wenn es zum ersten Mal angezeigt wird. Beispielsweise:
$ du -L foo bar
16K foo
4.0K bar
$ du -L bar foo
16K bar
4.0K foo
Beachten Sie, dass durch das Austauschen der Reihenfolge der Argumente geändert wird, welcher Ordner als 16 KB gemeldet wird.
Sie können du
das zweimalige Zählen der Datei erzwingen , indem Sie den -l
Parameter übergeben.
Bearbeiten:
Symbolische Links sind eine spezielle Art von Datei, und ein zusätzlicher Schritt ist erforderlich, um dem Link zu folgen. du
folgt keinen symbolischen Links, es sei denn, die -L
Option ist aktiviert.
Ein fester Link ist im Grunde eine Datei, die in zwei (oder mehr) Ordnern vorhanden ist. du
Verfolgt vermutlich anhand der Inode-Nummer, welche Dateien es gesehen hat, um zu vermeiden, dass diese zweimal gezählt werden. -l
Deaktiviert dieses Verhalten.
Mit just -L
folgt es also dem symbolischen Link, aber wenn die Zieldatei eine Inode-Nummer hat, die sie bereits gesehen hat, wird sie nicht erneut gezählt. Mit nur wird -l
es doppelte harte Links zählen, aber nicht symbolischen Links folgen.
Wenn Sie -l
und -L
zusammen verwenden, folgt es sowohl den symbolischen Links als auch dem mehrmaligen Zählen der Zieldatei (en).
du
hier klug spielen zu wollen, aber wenn Sie laufen, istdf -a -L bar foo
die Ausgabe sehr falsch (das Zählen der 16K in bar lässt foo leer).