Centos 6.5 使用 du 命令时目录大小不正确

Centos 6.5 使用 du 命令时目录大小不正确

我在我的一个网站目录上运行 du 命令,得到了两个不同的结果,我很困惑哪一个是准确的,以及为什么会有这么大的差异,这里是命令和输出。

du -hsc directory_name/
5.3G    directory_name/
5.3G    total


du -hsc directory_name/*
4.0K    directory_name/announcements.php
4.0K    directory_name/articles.php
1.2M    directory_name/election2011
4.3M    directory_name/error_log
78M directory_name/files
3.0G    directory_name/php
3.1G    total

谢谢

答案1

您能否使用下一行以易于阅读的格式发布命令和输出?

我怀疑尺寸根本就没什么不同......

当您输入“ du -hsc dir_name”时,您询问的是“ ”的大小dir_name

但是当您输入“ du -hsc dir_name/*”时,您是在询问“ dir_name”内所有目录和文件的大小。因此“ ”产生的所有文件的总和du -hsc dir_name/*应该等于“ ”的总和du -hsc dir_name

希望有所帮助。

编辑

我发现了以下内容(http://www.linfo.org/du.html):

“使用星号 ( * ) 通配符可以提供类似的报告,该通配符将匹配任何字符。例如,以下命令将列出以当前目录开头的树中的所有目录的大小:

杜*

但是,列出的文件只是父目录中的文件,而不是其子目录中的文件。此外,没有提供整个目录树的总数。

结合使用 -s 选项和星号通配符将导致 du 仅报告顶级目录本身中直接包含的文件和目录的名称和大小(而不列出其任何子目录及其中的文件的名称)。当然,每个列出的目录的大小都包括其所有文件和子目录(包括其中的所有文件)。例如,以下将提供有关以当前目录开头的目录树的报告:

du-hs *

通配符还可用于过滤输出,以仅列出名称以某些字符或字符序列开头、包含或结尾的项目。例如,以下内容将报告当前目录中名称以字母 s 开头的所有目录和文件的名称和大小,以及这些目录的所有级别子目录的名称和大小,无论它们的名称以什么开头:

du-hs*”

注意我加粗的地方。看起来通配符只获取父目录中的目录,并且没有提供总和。

答案2

如果 directory_name 有隐藏文件,则它们将在第一个命令中被计算,但不会计算在第二个命令中。模式 directory_name/* 不包含以 . 开头的任何文件(这包括目录 directory_name 的磁盘)。

相关内容