scp命令的进度栏


92

使用从服务器复制到本地(反之亦然)时,有什么方法可以显示进度条scp


现在我正在获取百分比。但是我需要一个进度条。
阿卜杜勒·沙金

周围有一个脚本,但是我不知道如何使它起作用
Uri Herrera

1
您可能能够改变这个脚本为“cp'`进度条:chris-lamb.co.uk/2008/01/24/...
Rinzwind

scp -r不显示进度条,但给出了每个文件的百分比
spyderman4g63

Answers:


92

我不认为这可以用来完成scp。上次我需要这样的东西,即显示进度时,我rsync改用了。它以条状方式显示进度。看看是否适合您。

您将需要使用的--progress选项rsync。您可以使用以下命令:

rsync -r -v --progress -e ssh user@remote-system:/address/to/remote/file /home/user/

1
我打算发布类似的内容,但是当我对其进行测试时,我只是得到了2741851 0% 700.39kB/s 0:17:21一个图形化进度条(我认为OP想要的)。
奥利(Oli)

1
@Oli:我认为是因为您正在复制一个非常小的文件。复制在rsync可以显示进度之前结束。如果复制较大的文件,则应显示进度栏。
2011年

1
对于一直在寻找带有进度条的cp的任何人,rsync在本地都很好用,所以这也回答了这个问题!(只需将其保留下来以-e ssh user@remote-system:获取本地副本,并man rsync说明很多选择)
鼠尾草(Sage

1
如果要连接到默认端口以外的其他SSH端口,则可以使用rsync -avz --progress -e 'ssh -p 1223' root@google.com:/foobar.txt ./my-local-copy.txt
damd 16'Aug

4
为什么rsync 只需要添加就-v可以使用scp
Samir Sabri '18

64

-v开关工作正常。

例:

5%9232KB 357.5KB / s 07:48 ETA


6
那是正确的答案。
int_32 '17

那应该是正确的答案!为什么要打扰并安装rsync
Samir Sabri '18

3
使用时似乎无效-3
fuero

1
@fuero man scp:“ -3两个远程主机之间的副本是通过本地主机传输的。没有此选项,数据将直接在两个远程主机之间复制。请注意,此选项会禁用进度表。
带帽子的家伙

4

我不知道如何在命令行中执行此操作。我敢肯定这是可能的,但是有一种图形方法可以做到这一点。

Nautilus(Ubuntu中的默认文件浏览器)可以挂载ssh / sftp服务器。之后,它们就像一个本地文件系统,您可以像往常一样复制文件。然后,您将获得与普通副本一样的通常进度条。

File菜单下查找Connect to server...


4

截至2018年,默认情况下显示进度和ETA,并且可以通过以下方式禁用 -q


不在macOS上,哈哈!
Drachenfels

借助此,您是指总体进度还是基于每个文件?我只看到它在每个文件的基础上,我刚安装的Debian 9
mazunki
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.