我正在使用rsync从“硬盘 – 进程”选项复制一个大文件(> 4 GB)从硬盘到USB驱动器。 在此之前,该文件已经存在于USB上,并且与磁盘上的文件相同。 所以基本上我正在做一个testing。 我的假设是,如果rsync足够聪明,它不应该做真正的副本。
然而,它仍然试图复制(至less从进展和USB闪烁)。 这是我不明白的第一件事。
然后它抱怨没有足够的空间(USB上的可用空间是2 GB)。 这不应该发生,因为它只需要replace占用相同数量空间的文件,对吧? 我甚至使用“ – 删除之前”,它仍然抱怨。
谢谢你的提示。
对于你的第一个问题,什么是U盘上的文件系统? 它可能没有包含足够的关于rsync文件的信息来确定时间戳,权限等。
关于第二点,–partial选项会导致rsync在复制时创build临时文件,然后在传输完成后重命名该文件。
例如,我现在在Ubuntu 14.04系统上运行这个命令:
/usr/bin/rsync -avzh --partial --progress 192.168.42.40:/Users/Shared/bsd /srv/share/distros
这是产生以下输出:
receiving file list ... 36 files to consider bsd/ bsd/FreeBSD-10.0-RELEASE-i386-dvd1.iso 738.41M 31% 11.20MB/s 0:02:17
但正在创build的文件是:
15:28:57 file01 lnelson:/srv/share/distros/bsd> ls -al drwxr-xr-x 3 lnelson lnelson 4096 Sep 17 15:28 . drwxr-xr-x 4 lnelson lnelson 4096 Sep 14 23:12 .. -rw------- 1 lnelson lnelson 242745344 Sep 17 15:28 .FreeBSD-10.0-RELEASE-i386-dvd1.iso.Xo0LH8
手术完成后,我得到了:
15:28:58 file01 lnelson:/srv/share/distros/bsd> ls -al drwxr-xr-x 3 lnelson lnelson 4096 Sep 17 15:31 . drwxr-xr-x 4 lnelson lnelson 4096 Sep 14 23:12 .. -rw-r----- 1 lnelson lnelson 2317000704 Sep 15 23:36 FreeBSD-10.0-RELEASE-i386-dvd1.iso
如果rsync确实重新复制了文件,并且正在使用–partial标志,那么它正在创build一个临时的新文件. 作为第一个字符,所以只有在rsync正在进行时才能看到该临时文件,而只执行ls -a或ls -al 。 这意味着您需要在USB驱动器上有足够的可用空间来处理现有的4GB副本以及新的4GB临时文件,直到副本完成,届时临时将replace原始副本,您将只能使用USB上的4 GB驾驶。 在rsync期间,您需要8GB的存储空间才能完成操作。