2011-03-23 178 views
5

我使用一个静态网站生成器,在每次运行时生成网站中的所有文件。生成文件后,我使用rsync来复制内容。如何使rsync保留未更改文件的时间戳

为了更好的缓存,我希望rsync不要修改目标中那些没有改变的文件的时间戳。可能吗?

编辑:为了清楚起见,所有源文件的时间戳总是比目标文件的时间戳更新。

回答

9

-c选项似乎做我想做的。在我的情况下,表现惩罚不是问题。

+0

-t在你的情况下会更好 – Pungs 2014-03-13 03:49:33

+0

我不这么认为,因为源文件的时间戳总是比目标文件的时间戳更新,即使文件内容没有改变。 – 2014-08-26 05:33:09

+2

-c选项有效。有一点需要注意:如果你不想修改时间改变,一定不要使用-a选项,因为它默默地调用-t,这意味着“保留修改时间”,即“覆盖修改时间具有本地文件修改时间的远程文件“。 – ishmael 2015-09-18 21:46:36

0

你试过了-t和-E标志吗?

编辑:呃...或者是每次重新生成网站时更改源文件的时间戳,即使文件没有更改?

+0

是的,源文件时间戳总是变为“now”。 – 2011-03-23 19:37:59

+0

在这种情况下,请尝试使用--size-only,以便它跳过新文件(假设它们的大小相同)......但它有点危险,可能会产生意想不到的后果。与-c结合使用会更好一些,但速度较慢。 – MarcB 2011-03-23 19:39:45