du liefert mir inkonsistente Ergebnisse, abhängig von der Reihenfolge der Argumente

369
D Mac

Ich verwende Darwin (Mac OS X 10.11.2 - die aktuelle Version von El Capitan) auf meinem Mac Book Pro, aber hier handelt es sich um ein Standard-Befehlszeilenprogramm, nämlich du.

Ich bekomme inkonsistente Ergebnisse von du:

21:19 % du -sk 677876 . 21:19 % du -sk . 677876 . 21:19 % du -sk * 276464 aaa 61440 bbb 339968 ccc 21:19 % du -sk * . 276464 aaa 61440 bbb 339968 ccc 4 . 

Bisher alles normal - hier kommt die Überraschung

21:19 % du -sk . * 677876 . 0 aaa 0 bbb 0 ccc 

Ich erwarte nicht zu wissen, warum es das tut - aber wie finde ich heraus, warum es das tut?

Ein Kommentar fragte nach der Ausgabe von ls -lund das ist ein großartiger Vorschlag. Hier ist die Ausgabe von ls -lai@:

total 7 19867848 drwxr-xr-x@ 6 root wheel 204 Feb 9 21:09 . com.apple.backupd.SnapshotVolumeFSEventStoreUUID 36  com.apple.backupd.SnapshotVolumeLastFSEventID 8  com.apple.backupd.SnapshotVolumeUUID 36  19867847 drwxr-xr-x@ 3 root wheel 102 Jun 19 2014 .. com.apple.backup.SnapshotNumber 2  com.apple.backup.SnapshotVersion 1  com.apple.backupd.SnapshotCompletionDate 16  com.apple.backupd.SnapshotStartDate 16  com.apple.backupd.SnapshotType 1  com.apple.backupdelta.IsMobileBackup 3  com.apple.backupdelta.SizeEstimate 9  19868010 drwxr-xr-x@ 3 root wheel 102 Dec 21 08:24 aaa com.apple.s stem.Security 68  19867861 drwxr-xr-x@ 3 root admin 102 Jan 27 2014 bbb com.apple.backupdelta.MoveChecked 3  19871640 drwxr-xr-x@ 3 root wheel 102 Jun 19 2014 ccc com.apple.FinderInfo 32  
2
Ich habe gerade versucht, dies in Mac OS X 10.10 (Yosemite) neu zu erstellen, und Sie wissen, was… Das ist verwirrend. Meine Realisten zeigen die erwarteten Werte. Warum Sie "0" -Werte erhalten, ist nur ungerade. Wirklich gute Frage. JakeGould vor 8 Jahren 1
kannst du 'ls -la' posten? Ich frage mich, ob das etwas mit Rechten oder so etwas zu tun hat aaaaaa vor 8 Jahren 1
@aaaaaa: Frage wurde mit Antwort bearbeitet D Mac vor 8 Jahren 0

1 Antwort auf die Frage

1
Guillaume Boudreau

Ich denke, Ihr verwendet duin einem Time Machine Backup-Ordner.

Pro duMan Seite:

Verzeichnisse mit mehreren festen Links (normalerweise Time Machine-Sicherungen) werden einmal pro Ausführung gezählt.

Ich denke also aaa, dass, bbbund cccDateien harte Links sind, und da sie im Ergebnis von .gezählt wurden, werden sie im Ergebnis für aaa, bbboder nicht erneut gezählt ccc. Deswegen zeigt die Ausgabe von du -sk * .677876 nicht, sondern nur 4; Die Summe aller angegebenen Dateien / Ordner kann 677876 nicht überschreiten.

Ref: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/du.1.html