为什么du命令显示文件夹中的总数与父

时间:2016-11-02 17:31:24

标签: linux du diskusage

我无法理解为什么文件夹中的总大小与父文件中的总大小不同。

这是我的文件夹树

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命令中有一些缓存?
  • du无法读取的垃圾或隐藏文件?

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

  • 磁盘文件系统是ext4
  • 使用rsync上传文件
  • 磁盘不在raid中

2 个答案:

答案 0 :(得分:2)

要使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 *

答案 1 :(得分:0)

以递归方式查找隐藏的(以点开头的名称)文件/目录:

find . -name ".*" -ls