我有一个xyz.log
大小为 1.72MB 的文件。
在 FLASH 文件系统中:如果我运行du -k xyz.log
输出是1761 xyz.log
.
我将相同的文件复制到 RAM 存储并运行,du -k xyz.log
输出为221 xyz.log
.
如果我运行ls -lrth
,两个文件系统中的文件大小相同:
-rw-r--r-- 1 root aspa 1.7M Jan 1 00:25 xyz.log
RAM文件系统是pramfs
,FLASH文件系统是jffs2
。
为什么同一文件在不同文件系统中的磁盘使用情况不同以及如何在所有文件系统中获得相同的磁盘使用情况?
答案1
使用du --apparent-size -k
来自手动的:
‘--apparent-size’
打印表观大小,而不是磁盘使用情况。文件的表观大小是常规文件报告的字节数
wc -c
,或更一般地说,ls -l --block-size=1
或stat --format=%s
.例如,包含‘zoo’
没有换行符的单词的文件的表观大小当然为 3。如此小的文件可能需要 0 到 16 KiB 或更多的磁盘空间,具体取决于文件的类型和配置文件所在的系统。但是,使用此命令创建的稀疏文件:dd bs=1 seek=2GiB if=/dev/null of=big
表观大小为 2 GiB,但在大多数现代系统上,它实际上几乎不使用任何磁盘空间。