2

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

这是我的文件夹树

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中
4

2 回答 2

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 选项

shopt -s dotglob
du -sch *
于 2016-11-02T18:03:19.023 回答
0

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

find . -name ".*" -ls
于 2016-11-02T18:38:10.137 回答