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

Jag*_*gan 4 linux filesystems disk-usage

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
Run Code Online (Sandbox Code Playgroud)

RAM文件系统是pramfs,FLASH文件系统是jffs2

为什么同一文件在不同文件系统中的磁盘使用情况不同以及如何在所有文件系统中获得相同的磁盘使用情况?

les*_*ana 5

使用du --apparent-size -k

\n\n

手册中:

\n\n
\n

\xe2\x80\x98--apparent-size\xe2\x80\x99

\n\n

打印表观大小,而不是磁盘使用情况。文件的表观大小是wc -c常规文件报告的字节数,或更一般地说,ls -l --block-size=1stat --format=%s. 例如,包含没有换行符的单词的文件的\xe2\x80\x98zoo\xe2\x80\x99表观大小当然为 3。如此小的文件可能需要 0 到 16 KiB 或更多的磁盘空间,具体取决于文件的类型和配置文件所在的系统。但是,使用此命令创建的稀疏文件:

\n\n
          dd bs=1 seek=2GiB if=/dev/null of=big\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n
\n