我经常使用外部硬盘备份笔记本电脑上的文件。我使用 Linux 系统(Ubuntu)的命令行。到目前为止,我只是将所有内容复制到一个目录中,并删除了旧备份。然而,最近我意识到这样做效率很低,因为我的目录的新状态和旧状态之间只有很少的变化(差异)。粗略地说,如果只有 2 个新文件并且只有 3 个旧文件发生了变化,我不需要复制数千个文件。
因此,我想知道如何完成以下任务:
- 比较我的文件夹的当前状态和“旧”状态(来自备份的状态)。
- 复制新文件(位于当前文件夹中但不在备份中的文件)。
- 复制已更新的文件(修改日期时间晚于上次备份时间的文件)。
- 如果文件不再位于当前目录中但仍在备份中,则应将其从备份文件夹中删除。
因此,总结一下,在执行所需操作后,备份文件夹的内容应与我想要备份的文件夹的内容相同。我该如何实现这一点?
答案1
使用 rsync 命令。
apt-get install rsync
使用 -a 参数可以实现您所概述的操作。
rync -a MyFiles MyBackup
如果您想查看 rsync 在不对目标进行任何更改的情况下会执行的操作,请使用 -n 选项(表示试运行)。
rync -an MyFiles MyBackup
此外,rsync 还有图形前端,例如grsync