rsync 是同步文件的利器,一般用于多个机器之间的文件同步与备份,同时也支持在本地的不同目录之间互相同步文件。在这种场景下,rsync 远比 cp 命令更加合适,它只会同步需要更新的文件,默认情况下,rsync 通过比较文件的最后修改时间(mtime)和文件的大小(size)来确认哪些文件需要被同步过去。
最近刚好有一个需求,需要将文件从一个目录同步到另外一个目录去,我就首先试了下下面的命令:
# mkdir src dest # echo hello > src/one.txt # rsync --stats src/1.txt dest
这里加上 --stats 的目的是为了显示文件传输的详细信息。执行完成后文件已经同步到目标目录,非常简单,但是如果再执行一次,我们会非常尴尬地发现文件被再次同步过去:
# rsync --stats src/one.txt dest Number of files: 1 Number of files transferred: 1 Total file size: 6 bytes Total transferred file size: 6 bytes Literal data: 6 bytes Matched data: 0 bytes File list size: 21 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 77 Total bytes received: 31 sent 77 bytes received 31 bytes 216.00 bytes/sec total size is 6 speedup is 0.06