我想使用 cp 维护许多文件和目录的镜像副本,但无法使其运行(类似于带开关的 MS XCOPY)

我想使用 cp 维护许多文件和目录的镜像副本,但无法使其运行(类似于带开关的 MS XCOPY)

我正在尝试将 SOURCE 复制到 DESTINATION,以便 DESTINATION 与 SOURCE 相同。

请注意,SOURCE 为 89GB,包含 26k 个文件和数百个文件夹,因此当只有 5 个或 10 个文件可能发生更改时,进行整个复制是不切实际的。

我意识到我可以使用增量备份应用程序,但我需要文件可直接访问和编辑,因为 DESTINATION 是插入另一台计算机(也运行 Ubuntu)的 USB 硬盘。

我尝试了以下多种变体,但无法使其工作。它要么不递归子目录,要么识别已更改的文件。大多数情况下,处理器会返回到打开的命令行,就像它刚刚成功完成操作一样。

我认为问题可能与包含空格的文件夹和文件名有关。如果我创建了这些文件夹和文件,我会使用_而不是" ",但这不是选项。所有文件都可以在 Ubuntu 应用程序中使用。我使用了开关-v,但没有打印任何内容。

在 Ubuntu 20.04 中,我在 SOURCE 目录中输入以下内容:

cp "*.*" -i -r -u -v /media/kevin/'MyDocs Backup'/Documents

我也尝试过使用明确的 SOURCENAME,但效果更差。

如果有助于传达我的问题,则 XCOPY 等效项来自:

XCOPY "*.*" K:\Documents /d /s /c

答案1

使用rsync

Rsync 是一款快速且用途极为广泛的文件复制工具。它既可以在本地复制,也可以通过任何远程 shell 复制至/从另一台主机,或者复制至/从远程 rsync 守护进程。它提供了大量选项来控制其行为的各个方面,并允许非常灵活地指定要复制的文件集。 它以其增量传输算法而闻名,该算法通过仅发送源文件和目标中现有文件之间的差异来减少通过网络发送的数据量。 Rsync 广泛用于备份和镜像,并作为日常使用的改进的复制命令。

rsync -av SOURCE DESTINATION
  • -a表示“存档模式”,它是其他几个选项的集合

    “存档模式 [...] 确保符号链接、设备、属性、权限、所有权等在传输过程中得到保留。”)

  • -v意思是“详细”,所以我们在终端上看到已复制的状态。

查看man rsync了解更多详细信息和选项。


SOURCE注意和之间的区别SOURCE/

源上的尾部斜杠会改变此行为,以避免在目标上创建额外的目录级别。您可以将源上的尾部 / 视为“复制此目录的内容”,而不是“按名称复制目录”

相关内容