如何仅同步文件的时间戳?

时间:2014-02-18 14:00:18

标签: rsync

有没有办法在Linux命令行中进行r(?)同步时间戳用于内容相同的文件

即。复制了一些目录结构而没有复制时间戳,然后独立修改。现在需要复制相同文件的时间戳,以简化进一步的同步。

2 个答案:

答案 0 :(得分:2)

看起来我的问题的答案是(差不多):

rsync -a -c --existing /source/ /destination/

这将复制不同的文件,据我所知静默同步同等文件的时间戳。

通常首先使用-n(或--dry-run)密钥进行尝试。

<强>增加:

有时需要做我的问题中提到的事情。所以有一个脚本完全符合我的要求:

#!/bin/bash

# Ensure that there is a trailing '/'.
SRC="$(dirname $1)/$(basename $1)/"
DST="$(dirname $2)/$(basename $2)/"

if ! [[ -d "$SRC" ]] || ! [[ -d "$DST" ]]; then
  echo "Usage:"
  echo "  $(basename $0) src/dir dst/dir"
  exit 1
fi

diff -rqs "$SRC" "$DST" | grep -Po "(?<=^Files $SRC).*(?= and $DST.* are identical$)" | rsync -tv --files-from=- "$SRC" "$DST"

答案 1 :(得分:1)

为了更快捷地设置时间戳,我改用了它:

GET

rsync -vrtpi --size-only /media/myname/Dropbox/ /home/myname/Dropbox 选项至关重要,因为它保留了时间戳,-t仅比较文件大小。

请注意尾随反斜杠&#39; /&#39;在第一个Dropbox之后。

--size-only-c,选项可能需要一些时间。

在运行之前,请干运行以查看哪些文件受到影响:

--checksum