scp:如何找出复制完成

San*_*dro 5 linux bash shell scp sh

我正在使用scp命令将文件从一个Linux主机复制到另一个主机.我在host1上运行scp commend并将文件从host1复制到host2.文件很大,复制它需要一些时间.一旦复制开始,就会立即显示host2文件.即使复制仍在进行中,我也可以使用此文件执行所有操作.

有没有可靠的方法来确定在host2上是否完成了复制?

Tom*_*ech 8

在我的头顶,你可以做类似的事情:

touch tinyfile
scp bigfile tinyfile user@host:
Run Code Online (Sandbox Code Playgroud)

然后当tinyfile你看来你知道转移bigfile完成了.

正如评论中所指出的,这假定scp将按指定的顺序逐个复制文件.如果您不信任它,您可以明确地逐个执行:

scp bigfile user@host:
scp tinyfile user@host:
Run Code Online (Sandbox Code Playgroud)

这种方法的缺点是您可能需要进行两次身份验证.如果这是一个问题,你可以使用类似ssh-agent的东西.

  • 除非 `scp` 决定它可以一次复制多个文件。 (2认同)