不同文件系统(PRAMFS和FLASH)中“du -k”显示的文件大小不同

不同文件系统(PRAMFS和FLASH)中“du -k”显示的文件大小不同

我有一个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=1stat --format=%s.例如,包含‘zoo’没有换行符的单词的文件的表观大小当然为 3。如此小的文件可能需要 0 到 16 KiB 或更多的磁盘空间,具体取决于文件的类型和配置文件所在的系统。但是,使用此命令创建的稀疏文件:

          dd bs=1 seek=2GiB if=/dev/null of=big

表观大小为 2 GiB,但在大多数现代系统上,它实际上几乎不使用任何磁盘空间。

相关内容