![获取文件夹的真实外观大小](https://linux22.com/image/83224/%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E7%9C%9F%E5%AE%9E%E5%A4%96%E8%A7%82%E5%A4%A7%E5%B0%8F.png)
我正在使用该du
命令来获取文件夹的大小。由于我对实际大小感兴趣,我最终使用了以下命令:
du –sh --apparent-size <someFolder>/
在此示例中,返回4.6M
.但我知道该文件夹实际上有 4M,WinSCP 确认了这一点 (4096KiB)。
那么我必须使用什么命令才能得到“4M”结果(最好是人类可读的格式)?
另请注意,我还需要包含所有子文件夹,以便它必须是递归的。文件夹结构是这样的:
_cache
+-- _fold1
+-- _fold2
| +-- _fold2.1
| +-- file2.1.1
| +-- file2.1....
| +-- file2.1.5000
| +-- _fold2.2
| +-- file2.2.1
| +-- file2.2....
| +-- file2.2.5000
谢谢!
答案1
该命令du
旨在显示磁盘使用情况。目录的磁盘使用情况包括实际目录占用的大小。
目录是一种特殊类型的文件,它保存其中所有文件或其他条目的名称和索引节点。这会占用磁盘空间。
例如,我创建了三个目录。
一种是dir1
,包含一个大小为 40M 的单个文件。该目录dir2
包含十个子目录,每个子目录包含一个大小为 4M 的文件。该目录dir3
包含一万个空文件。
跑步du -s -B 1 dir1 dir2 dir3
给予
41947136 dir1
41988096 dir2
258048 dir3
对于小目录,目录大小(至少在没有任何特殊设置的 ext4 文件系统上)为 4096 字节。对于大型目录(包含许多文件),大小会更大(正如ls -l
会告诉您的那样)。将目录和文件的大小相加,我相信您最终会得到所看到的差异。