为什么 du 命令在文件夹和父级中显示不同的总数

Why du command show different total in folder versus in parent

我不明白为什么我的文件夹总大小与父文件夹总大小不同。

那是我的文件夹树

bkp
|-- raid10
|    |-- folder_a 
|    |-- folder_b 
|    |-- folder_c 
|    |-- folder_d 
|    |-- folder_e 
|    |-- folder_f 
|    |-- folder_g 
|    |-- folder_h 
|    |-- folder_i 
|    |-- folder_j 
|    |-- folder_k 
|    |-- folder_l
|    |-- script.sh
|-- vm

我之前删除了该文件夹中的大量文件,我想获得新的磁盘使用情况。

sudo du -shc /bkp/*
756G    raid10
4.0K    vm
756G    total

现在我执行该命令以获取有关文件夹 raid10 的更多信息:

sudo du -shc /bkp/raid10/*
13G     folder_a
178M    folder_b
15G     folder_c
2.3G    folder_d
32M     folder_e
31G     folder_f
31G     folder_g
49G     folder_h
131M    folder_i
4.7G    folder_j
392M    folder_k
4.0K    folder_l
4.0K    lost+found
4.0K    script.sh~
144G    total

为什么总数如此不同?

我检查了 man du 并尝试了一些命令,例如 --apparent-size,但结果相同。也可以尝试不使用 -s sudo du -hc /bkp/raid10/*,我的总数相同但我看到了所有目录...

我有一些假设:

关于我的文件的一些信息:

要使 du 搜索隐形只需执行以下操作:

#First part will get all invisible and second will get all non-invisible
du -shc /bkp/raid10/.[!.]* /bkp/raid10/*

或更清洁的命令:

cd /bkp/raid10
du -sch .[!.]* *

或启用 shell 选项使隐藏文件与 globbing 匹配

shopt -s dotglob
du -sch *

递归查找隐藏的(以点开头的名称)files/directories:

find . -name ".*" -ls