文件复制到另一个目录后显示不同的大小

文件复制到另一个目录后显示不同的大小

我曾经cp -rP <dir name> <new dir name>将目录的内容(包括权限等)从一个目录复制到另一个目录。奇怪的是,du 要么给出一些奇怪的结果,要么复制过程由于某种原因占用了额外的块。

例如,复制的目录中有一个 MemberNames.txt 文件。复制后,我在新(复制)目录中获得以下内容:

$ du -sk MemberNames.txt
220 MemberNames.txt

$ ls -al MemberNames.txt
-rwxr-xr-x  1 root  wheel  221344 May  4 00:04 MemberNames.txt

现在,如果我进入原始目录并执行相同的操作,我会得到以下结果:

$ du -sk MemberNames.txt
88 MemberNames.txt

$ ls -al MemberNames.txt
-rwxr-xr-x  1 root  wheel  221344 May  4 00:04 MemberNames.txt

换句话说,上面的原始文件似乎使用了 88 个块,文件长度为 221344 字节,而复制的文件占用了 220 个块,但长度仍然为 221344 字节。

要么是 du 报告了某些奇怪的内容,要么是我不知道如何使用或正确解释它,要么是复制操作 (cp) 将数据“分散”到比我认为需要的更多的块中。如果我对文件进行 diff,它们之间没有任何区别。

有人能告诉我发生了什么吗?更好的是,我如何让 cp 停止占用比它需要的更多的块。我也不反对使用不同的文件复制或传输工具,我只是想知道为什么复制的目录占用了近 50% 的空间。很多文件都发生了这种情况,du -sk新目录(复制的)上的 a 比原始目录大近 50%,但从内容的角度来看,一切都是相同的。

相关内容