![将文件从centos复制到centos服务器后文件字节增加](https://linux22.com/image/215005/%E5%B0%86%E6%96%87%E4%BB%B6%E4%BB%8Ecentos%E5%A4%8D%E5%88%B6%E5%88%B0centos%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%8E%E6%96%87%E4%BB%B6%E5%AD%97%E8%8A%82%E5%A2%9E%E5%8A%A0.png)
我使用 .txt 将文件从一台服务器复制到另一台服务器rsync
。使用 测量的文件夹文件字节大小du -sb <folder>
从 31,755,289,904 字节增加到 31,755,505,579。
我不确定这是怎么发生的。
两台服务器均为 CentOS Linux 版本 7.3.1611(核心)。
请帮忙。
答案1
我可以引用上一个问题ls -l 和 du-sh 中的文件大小有什么区别,但我总结一下:
du
测量文件在文件系统中占用的空间量。文件系统以 1k 字节的“块”分配文件空间,但对于非常大的磁盘,块的大小可能会更大。
因此,一个几百 KB 的文件ls -l
将消耗文件系统的一整块。其他文件无法“共享”该块,因此该块的完整大小将根据该文件按 制成表格du
。 ls -l
报告文件内容使用的字节数并忽略块中额外未使用的空间。
传统上,对于大小高达几 TB 的大多数磁盘,Linux 文件系统使用 1 kbyte(1024 字节)的块。在较大的磁盘(例如 4+TB)上,文件系统块通常为 4 KB。 ls -l
可能会显示该文件的大小为几百 KB,但在磁盘上它使用 1 个块(1 KB)并du
显示这一点。在不同的服务器上,如果磁盘大得多,文件仍然会消耗一块空间,但该块是 4 k 字节/4096 字节。
两台服务器的其他所有内容都可以完全相同,但如果保存文件的文件系统在服务器上具有不同的块大小,则该du
命令将报告文件在文件系统中占用不同数量的空间。