$ mkdir backup
$ rsync dira backup
$ rsync dirb backup
清单 2 创建目录 backup/dira,其中包含原来 dira 目录的拷贝。它还创建目录 backup/dirb,其中包含原来 dirb 目录的拷贝。后面的情况就不一样了:$ rsync dira backup/dira。在第一次使用时,这个脚本的作用符合期望。但是,在第二次使用时,rsync 会在指定的目标目录中创建目标目录,也就是创建 backup/dira/dira 目录。这不仅没有创建我们需要的结构,还造成了内容重复(其中一个版本是没有同步的)。
在使用 rsync 时,可能需要指定另外几个选项。默认的同步并不复制文件元数据,而且像对待普通文件那样对待某些特殊文件(比如链接)。希望使用的主要选项包括:
●--delete —— 从目标目录中删除源目录中不再存在的文件。默认模式仅仅同步文件修改并创建新文件。在默认情况下,如果在源目录中删除了一个文件,就会忽略它,并不在目标目录中相应地删除它。通过使用这个选项,可以创建完全相同的同步。
●--recursive —— 递归地复制目录和文件。
●--times —— 同步每个文件和目录的修改时间和创建时间。
●--owner —— 如果可能的话,保留文件的所有者。
●--group —— 如果可能的话,保留组所有者。
●--links —— 把符号链接复制为符号链接,而不是复制文件数据并解释源链接。
●--perms —— 保留文件权限。
●--hard-links —— 保留硬链接(在目标目录中创建硬链接),而不是复制文件内容。
其中一部分选项只能在两个系统的配置完全相同的情况下使用。例如,只有在源和目标计算机对相同用户使用相同 ID 的情况下,才能保留文件所有者和组所有者设置。
标签: