du 根据参数顺序给出不一致的结果

du 根据参数顺序给出不一致的结果

我在我的 Mac Book Pro 上运行 Darwin(Mac OS X 10.11.2 - El Capitan 的当前版本),但这是关于标准命令行实用程序 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

我不指望知道它为什么会这样做——但我怎样才能知道它为什么会这样做呢?

有一条评论询问 的输出ls -l,这是一个很好的建议。以下是 的输出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 

答案1

我认为您正在使用duTime Machine 备份文件夹。

每个du手册页:

每次执行 du 时,具有多个硬链接的目录(通常是 Time Machine 备份)都会被计算一次。

因此,我认为aaabbbccc文件是硬链接,并且由于它们已计入 的结果中.,因此它们不会在aaabbb或 的结果中再次计入ccc。 这也是为什么 的输出du -sk * .不显示 677876,而只显示 4;所有指定的文件/文件夹的总数不能超过 677876。

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

相关内容