首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rsync :仅通过时间戳复制

Rsync :仅通过时间戳复制
EN

Server Fault用户
提问于 2011-12-28 16:35:50
回答 6查看 44.2K关注 0票数 59

目前,我有两个目录A/和B/,除了时间戳外,它们在各个方面都是相同的。因此,如果我运行命令:

代码语言:javascript
复制
rsync --dry-run -crvv A/ B/

然后所有文件都标记为“最新”,而命令:

代码语言:javascript
复制
rsync --dry-run -rvv A/ B/

显示所有文件将从A/复制到B/。

我的问题是:既然我知道文件是相同的(就内容而言),那么有没有办法(通过rsync或其他方式)设置B文件的时间戳与A/文件的时间戳相同,而不将所有文件从A/复制到B/?

谢谢

EN

回答 6

Server Fault用户

发布于 2012-11-21 13:43:30

使用-t (保存时间戳)和--size-only只会比较文件的大小。如果大小匹配,rsync将不会复制该文件,但由于指定了-t,因此它将更新目标文件上的时间戳,而不重述它。

确保不要使用-u (update),因为这将跳过已经存在的文件,并完全跳过更新时间戳。

我的问题是最初没有使用rsync将一堆文件复制到一个新驱动器,因此时间戳被更新到当前时间。我使用下面的命令在相当长的时间内正确同步所有内容:

代码语言:javascript
复制
rsync -vrt --size-only /src /dest
票数 98
EN

Server Fault用户

发布于 2012-03-30 13:58:29

如果大小匹配,使用--仅大小将导致rsync跳过比较文件时间戳(因此是文件内容)。将此与-times相结合,将时间戳复制到目标树上。

票数 8
EN

Server Fault用户

发布于 2017-09-29 14:36:46

使用源(例如/path/to/source)目录作为触摸命令的引用。只需将cd转到目标目录,然后执行

代码语言:javascript
复制
find -type f -exec touch -r /path/to/source/{} {} \;

您不能用rsync复制子秒时间戳(尚未)。

这也适用于目录和伪文件(只需删除或更改-type f)。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/344731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档