我正在使用 rsync rsync $source $destination
。如何根据修改时间进行 rsync?我看到了文件大小的选项--size-only
,但没有看到修改时间的选项?
答案1
我正确理解你的问题吗? “修改时间”是默认标准之一,rsync
决定是否应更新副本。
从man rsync
Rsync 使用“快速检查”算法(默认情况下)查找需要传输的文件,该算法查找大小或上次修改时间已更改的文件。当快速检查表明文件的数据不需要更新时,将直接在目标文件上对其他保留的属性(根据选项的请求)进行任何更改。
答案2
最简单的方法是运行以下命令:
rsync -an /path/to/source /path/to/destination
然后验证是否仅传输所需的文件。一旦你验证了这一点,运行上面的命令而不带-n
标志,你就会实现你的目标。正如用户 roaima 所指出的,还有另一个标志可以实现您的目标,那就是-t
。使用该-a
标志相当于 -rlptgoD
.阅读有关rsync
使用的所有信息这里。
另一种方法是使用以下命令这个答案:
find /path/to/source -file -mtime +3 -exec rsync {} /path/to/destination \;
因此,您可以用来find
查找给定日期$SOURCE
具有 3 天前修改日期的所有文件。您可以更改-mtime +3
为您想去的任意天数。一旦您确定了给定的所有文件,$SOURCE
您就可以执行rsync
(使用任何所需的选项)您的$DESTINATION
.