单向同步文件夹

mar*_*ree 0 file-copy timestamps files

使用 Bash,我需要复制并覆盖一些具有相同名称但源内容不同的文件,同时忽略相同的文件。

cp我在手册中没有看到仅复制不同文件的选项。

首先,我尝试使用cp“更新”选项,但它不会将旧文件从源复制到目标。

cp -a -u SOURCE DESTINATION
Run Code Online (Sandbox Code Playgroud)

如果我删除该-u参数,它会正确复制所有文件,但我想避免不必要的复制。

我需要这样的东西:

  1. 当目标与源不同时,必须复制源文件。
  2. 有时目的地比源更新。尽管如此,复制还是必须完成。
  3. 仅当源文件与目标文件相同时,才必须忽略它们。

我该怎么做呢?

Pan*_*nki 6

cp不比较文件内容,仅比较时间戳。

改用rsync

rsync -acv SOURCE/ DEST/
Run Code Online (Sandbox Code Playgroud)

要获得更少的输出,请删除该v标志。