如何在使用cp复制目录时创建进度条?

oct*_*pus 47 bash cp progress-bar

我想我可以将源目录中的文件数与cp进展中的目标目录中的文件数进行比较,或者可以用文件夹大小来代替?我试图找到示例,但所有bash进度条似乎是为复制单个文件而编写的.我想复制一堆文件(或一个目录,如果前者不可能).

Ste*_*ert 58

您也可以使用rsync而不是cp这样:

rsync -Pa source destination

这将为您提供进度条和预计完成时间.非常便利.

  • 是的,`rsync --progress/path/to/origin/path/to/destination`很棒,可以在所有系统上使用. (6认同)
  • 恰好知道 rsync 和 cp 的速度比较吗? (2认同)

She*_*ami 23

要在执行文件和文件夹及子文件夹(包括链接和文件属性)的递归副本时显示进度条,您可以使用gcp(通过运行"sudo apt-get install gcp"轻松安装在Ubuntu和Debian中):

gcp -rf SRC DEST
Run Code Online (Sandbox Code Playgroud)

以下是复制大文件夹时的典型输出:

Copying 1.33 GiB  73% |#####################      | 230.19 M/s ETA:  00:00:07
Run Code Online (Sandbox Code Playgroud)

请注意,它只显示整个操作的一个进度条,而如果您希望每个文件有一个进度条,则可以使用rsync:

rsync -ah --progress SRC DEST
Run Code Online (Sandbox Code Playgroud)

  • gcp 是基于 Python 的。请不要在生产中使用。我没查,不过好像不支持硬链接、特殊属性等。 (2认同)

Tho*_*ger 7

您可以查看该工具vcp.这是一个简单的复制工具,有两个进度条:一个用于当前文件,一个用于整体.

编辑

这是源代码的链接:http: //members.iinet.net.au/~lynx/vcp/ Manpage可以在这里找到:http://linux.die.net/man/1/vcp

大多数发行版都有一个包.