rsync 或在目录之间复制文件

rsync 或在目录之间复制文件

我希望将文件从文件夹 A 同步或复制到文件夹 B。我目前使用以下命令

rsync -aq /tmp/FolderA/* /tmp/FolderB

但是我看到在FolderB 中修改的文件中的条目消失了。我认为以下命令会有所帮助,但似乎不起作用。

rsync -aqu /tmp/FolderA/* /tmp/FolderB

最后,我尝试将FolderA中的文件更新为FolderB,并且不删除可能已放入FolderB下的文件中的任何条目。

同时,如果FolderA中的文件发生变化,它应该更新FolderB中的文件,而不是追加,而不会丢失任何其他信息。我认为 rsync 命令会对此有所帮助?

是不是-a搞砸了?我应该使用-r还是--inplace

提前致谢。

答案1

如果您确实想使用它附带的所有选项,则应该仅使用 -a 选项,我知道它乍一看似乎更容易,但它可能会导致问题。--archive, -a archive mode; equals -rlptgoD (no -H,-A,-X)那有很多选择哈哈。

你也许可以逃脱惩罚rsync -ruP /tmp/folderA/ /tmp/folderB/-P是为了进步,对于较长的转会来说可能会很好。-r是递归的,适用于您的目录。-u用于更新,而不是附加到文件。

另请注意,如果执行 /tmp/folderA 时不带尾部斜杠,则会将整个folderA 移动到目标位置,而/tmp/folderA/ 会将内容从folderA 内部移动到目标位置。不过,不要忘记目录的递归选项!

答案2

rsync对文件进行操作而不考虑其内容。如果您从FolderA复制到FolderB,那么您将获得FolderA中文件的匹配副本,并将其放入FolderB中。有多种标志可以控制该过程的各个方面,但基本任务保持不变:将文件从源复制到目标。

您可以安排跳过FolderB 中比FolderA 最近更新的文件。

您可以安排跳过匹配某些模式的文件。

但是您不能rsync解释文件的内容而只能复制符合某些用户定义条件的行或记录。

您的命令会将所有文件、目录和设备节点从FolderA复制到FolderB,当FolderB中的文件与FolderA不匹配时覆盖或更新它们:

rsync -a /tmp/FolderA/ /tmp/FolderB

相关内容