rsync 目录在目标位置较小

rsync 目录在目标位置较小

我在使用 rsync 从我的计算机到远程服务器时遇到了困难。我有一个文件夹,里面有几个子目录和很多小文件。在我的计算机上,我的目录的总大小(使用du -h)为 6.4GB。当我尝试将其 rsync 到远程服务器时,它似乎工作正常,但当我检查文件大小时,它只有 1.3GB。看起来所有子目录和文件都在那里,但文件太多了,我无法手动检查缺少什么。

我也尝试使用 ls -al 和 ls -l 来查看目录大小。在我的电脑上,我得到了这个

(base) MacBook-Pro:LaCie $ ls -al 2year_coarsened_cropped/
total 1024
drwxrwxrwx  1   staff  131072 19 Jun 14:18 .
drwxrwxrwx@ 1   staff  131072 31 Dec  1979 ..
drwxrwxrwx  1  staff  131072 19 Jun 14:32 test
drwxrwxrwx  1  staff  131072 19 Jun 14:23 train
(base) MacBook-Pro:LaCie $ ls -l 2year_coarsened_cropped/
total 512
drwxrwxrwx  1  staff  131072 19 Jun 14:32 test
drwxrwxrwx  1  staff  131072 19 Jun 14:23 train 

在远程服务器上,它显示的内容如下

remote:~$ ls -al 2year_coarsened_cropped/
total 16
drwxrwxr-x  4 user 4096 Jul 17 13:51 .
drwxr-x--- 14 user 4096 Jul 17 13:51 ..
drwxrwxr-x  5 user 4096 Jul 17 13:51 test
drwxrwxr-x  5 user 4096 Jul 17 13:51 train
remote:~$ ls -l 2year_coarsened_cropped/
total 8
drwxrwxr-x 5 user 4096 Jul 17 13:51 test
drwxrwxr-x 5 user 4096 Jul 17 13:51 train

我以前没用过 rsync,我通常使用 scp,但我得到了完全相同的结果。我不确定文件大小是如何或为何会减少这么多,但如果有人能提供建议,我将不胜感激。我的 rsync 命令只是rsync -r -v 2year_coarsened_cropped user@remote:/home/

答案1

本地尺寸较大的原因是本地驱动器的块大小为 128KB,而远程计算机的块大小为 4KB。尽管文件大小以字节为单位显示,但文件必须占用整数个块,在公共文件系统中文件之间没有块共享。因此,2KB 的文件在任一文件系统上都会占用 1 个块,但在本地文件系统上会有 126KB 的未使用空间,而在远程文件系统上只有 2KB 的未使用空间。因为du它涉及磁盘上实际占用的空间,所以它将显示所有文件块占用的总空间,而不是字节数的总和。本地 6.4GB 和远程 1.3GB 之间的差异在于,分配给本地驱动器上文件的块的未使用空间比分配给远程驱动器上文件的块多 5.1GB(大约)。

对于任何文件系统,我通常不会建议块大小达到 128K,但是当您处理非常大的文件(例如录制的视频)时,它会更有效率。

相关内容