Ду дает мне противоречивые результаты в зависимости от порядка аргументов

324
D Mac

Я использую Darwin (Mac OS X 10.11.2 - текущая версия El Capitan) на моем Mac Book Pro, но речь идет о стандартной утилите командной строки, du.

Я получаю противоречивые результаты от 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 . 

Пока все нормально - вот и сюрприз

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

I don't expect to know why it is doing this - but how do I find out why it is doing this?

A comment asked for the output of ls -l and that's a great suggestion. Here is the output of 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
Просто потратил некоторое время, пытаясь воссоздать это в Mac OS X 10.10 (Yosemite), и вы знаете, что ... Это сбивает с толку. Мои реалисты показывают ожидаемые значения. Почему вы получаете значения `0`, просто странно. Действительно хороший вопрос. JakeGould 8 лет назад 1
Вы можете опубликовать `ls -la`? Интересно, имеет ли это какое-то отношение к правам или что-то aaaaaa 8 лет назад 1
@aaaaaa: Вопрос отредактирован с ответом D Mac 8 лет назад 0

1 ответ на вопрос

1
Guillaume Boudreau

I think your using du in a Time Machine backup folder.

Per du man page:

Directories having multiple hard links (typically Time Machine backups) are counted a single time per du execution.

So I think the aaa, bbb and ccc files are hard links, and since they were counted in the result of the ., they won't be counted again in the result for aaa, bbb or ccc. That's also why the output of du -sk * . doesn't show 677876, but only 4; the total of all the specified files/folders can't go over 677876.

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