AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 693773
Accepted
Asmodean
Asmodean
Asked: 2022-03-10 11:13:44 +0800 CST2022-03-10 11:13:44 +0800 CST 2022-03-10 11:13:44 +0800 CST

rsync -u 选项如何帮助同步两个文件夹?

  • 772

我希望同步文件夹source和文件夹destination,其中所有更改source都将反映到目标。

在这种情况下,我会像这样使用 rsync 命令:

rsync -av --progress --delete "/source/" "/destination"

使用 / 表示源来指定其内容,而没有 / 表示目标。

现在,如果源有更新的修改时间,我是否必须使用该-u选项才能更新目的地?还是-av已经足够了?

我需要这个-i选项吗?谢谢!

-u, --update 这会强制 rsync 跳过目标上存在的任何文件,并且修改时间比源文件新。(如果现有目标文件的修改时间等于源文件的修改时间,则如果大小不同,它将被更新。)请注意,这不会影响符号链接或其他特殊文件的复制。此外,无论对象上的日期是什么,发送者和接收者之间的文件格式差异始终被认为对更新来说足够重要。换句话说,如果源有一个目录,目标有一个文件,那么无论时间戳如何,都会发生传输。此选项是传输规则,而不是排除规则,因此它不会影响进入文件列表的数据,因此也不会影响删除。

--delete 这告诉 rsync 从接收端删除无关的文件(不在发送端的文件),但仅限于正在同步的目录。您必须要求 rsync 发送整个目录(例如“dir”或“dir/”)而不使用通配符作为目录内容(例如“dir/*”),因为通配符由 shell 扩展并且 rsync 因此得到一个请求传输单个文件,而不是文件的父目录。从传输中排除的文件也不会被删除,除非您使用 --delete-excluded 选项或将规则标记为仅在发送端匹配(请参阅过滤规则部分中的包含/排除修饰符)。在 rsync 2.6.7 之前,除非启用了 --recursive,否则此选项将无效。从 2.6.7 开始,启用 --dirs (-d) 时也会发生删除,但仅限于正在复制其内容的目录。如果使用不当,此选项可能会很危险!首先尝试使用 --dry-run 选项 (-n) 运行以查看将要删除的文件是一个非常好的主意。如果发送方检测到任何 I/O 错误,则将自动禁止删除目的地的任何文件。这是为了防止发送端的临时文件系统故障(例如 NFS 错误)导致目标上的文件大量删除。您可以使用 --ignore-errors 选项覆盖它。--delete 选项可以与 --delete-WHEN 选项之一结合使用而不会发生冲突,以及 --delete-excluded。然而,如果没有指定 --delete-WHEN 选项,rsync 将在与 rsync 3.0.0 或更高版本通信时选择 --delete-during 算法,在与较旧的 rsync 通信时选择 --delete-before 算法。另请参见 --delete-delay 和 --delete-after。

rsync
  • 1 1 个回答
  • 80 Views

1 个回答

  • Voted
  1. Best Answer
    BowlOfRed
    2022-03-10T12:36:55+08:002022-03-10T12:36:55+08:00

    现在,如果源有更新的修改时间,我是否必须使用该-u选项才能更新目的地?

    不,已经是这样了。这样做-u是为了防止在目的地较新时发生更改。如果没有-u,这些文件将更新到源上的版本(可能更旧)。

    我需要 -i 选项吗?

    -i(like --progress) 不会影响同步行为,只会影响显示的输出。它仅显示有关所选每个文件的附加信息。

    • 1

相关问题

  • rsync - 使用 shell 脚本将每个 JPG/jpg 文件从一个硬盘驱动器移动到一个目录

  • tar 目录只发送修改过的文件块

  • 如何复制具有相对重复符号链接的目录树?

  • rsync 排除问题

  • rsync 端口 22 和 873 使用

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve