继续中止cp

Phi*_*hil 21 linux cp

cp中止后是否可以再次运行并使其从上次结束的地方开始(不覆盖已经复制的数据,只复制剩余的数据)?

Ama*_*rus 35

正是这样的案例教会了我rsync从一开始就使用。但是,在您的情况下,您现在可以使用 rsync。它只会复制新数据,包括在cp大文件中途停止时。

您可以像 cp 一样使用它,如下所示:

rsync --append /where/your/copying/from /where/you/want/to/copy
Run Code Online (Sandbox Code Playgroud)

  • 或者`--append-verify` 来比较最后的校验和只是为了确定。 (3认同)

Jan*_*cke 11

如果中止的cp是递归副本,您可能希望使用 rsync 恢复,包括选项--recursive

例子

中止复制命令:

cp -r source-directory destination-directory
Run Code Online (Sandbox Code Playgroud)

让我们假设destination-directory已经存在,所以这个复制命令创建了一个名为source-directory destination-directory。这可以通过以下方式恢复:

rsync --recursive --append source-directory destination-directory
Run Code Online (Sandbox Code Playgroud)

请注意,尾部斜杠在 rsync 路径选项中具有精确的含义。

在这种情况下,复制命令可能已经获得了参数source-directorysource-directory/,它没有任何区别。但是,在 rsync 命令中,它必须source-directory 没有尾部斜杠


Sve*_*ven 8

使用 -u 开关,并查看 cp 手册页。

  • -u 仅用于“更新”...即:它不会覆盖目标 _if_ 中的现有文件,它们相同或更新... (4认同)
  • 如果你使用-u,那么它会再次复制同一个大文件。-u 仅在您尝试恢复大型递归副本时才有帮助。 (4认同)

For*_*Man 5

rsync 也是一个很棒的工具:手册页位于 -> http://www.manpagez.com/man/1/rsync/