du -sh :我不明白为什么这两个结果不同

du -sh :我不明白为什么这两个结果不同

我需要知道文件夹及其子文件夹的大小。因此,我尝试使用命令。

光盘进入正确的目录,然后尝试(在狂欢):

[xxx@yyy TEST]$ du -sh .
4.1G    .

[xxx@yyy TEST]$ du -sh *AAA
3.2G    123_AAA

[xxx@yyy TEST]$ du -sh . *A
4.1G    .
2.7G    123_AAA

我怎么可能得到不同的结果123_AAA(3.2GB 然后 2.7GB)用我的第二条和第三条命令?

先感谢您

答案1

我认为 du 知道硬链接。尝试一下du -shl . *A

答案2

du按顺序处理参数并跟踪 inode,以便它们只被计算一次(如果使用 ,则为两次-c)。但是,我不明白123_AAA在 之后列出时如何计算.。我想到的第一个解释是,在命令行上列出时,符号链接可能会被不同地处理,但那是使用选项-D,而不是默认的。不跨越文件系统边界可能是另一个候选者,但-x默认情况下也不启用。

答案3

但是,当我检查手册页时,我无法复制此错误:

SYNOPSIS
       du [OPTION]... [FILE]...

所以我认为你一次只能有一个文件参数。不知道为什么你甚至会得到最后一个命令的结果:

wilhelm@server ~ $ du -sh .
2.1G    .
wilhelm@server ~ $ du -h wa
4.0K    wa
wilhelm@server ~ $ du -sh wa
4.0K    wa
wilhelm@server ~ $ du -sh . wa
2.1G    .

相关内容