wvx*_*xvw 5 linux bash filesystems du
我最近遇到了这个问题:
find /tmp/tmp33hn25wv -type f -exec stat --format='%s' {} + | awk '{s+=$1} END {print s}'
10420224
du -bs /tmp/tmp33hn25wv
12198004 /tmp/tmp33hn25wv
Run Code Online (Sandbox Code Playgroud)
结果始终不同。所有文件都以块大小字节的倍数写入。
du在哪里找到这些额外的字节?我知道文件系统可能需要更多或更少的空间来存储文件的内容,但我希望该-b
选项du
意味着它必须计算“表观”大小,而不是文件系统使用的大小......
du
包括目录的大小。如果您添加-type d
到find
标准,您可能会得到您想要的结果(我在仅包含标准文件的目录树上执行此操作):
find /tmp/tmp33hn25wv \( -type f -o -type d \) -exec stat --format='%s' {} + |\
awk '{s+=$1} END {print s}'
Run Code Online (Sandbox Code Playgroud)
但是,可能还有其他文件类型占用空间,因此请尝试完全省略类型检查:
find /tmp/tmp33hn25wv -exec stat --format='%s' {} + | awk '{s+=$1} END {print s}'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
297 次 |
最近记录: |