gcp – Linux 的高级文件复制工具

你们中的大多数人已经注意到, cp 命令不会显示 复制进度 在复制文件/文件夹时。 当我复制一个大文件时 cp 命令,我真的不知道需要多长时间,或者当前复制的百分比是多少。 除了在复制大文件时查看终端中闪烁的光标图标和硬盘指示器之外,我不知道复制进度是否真的在进行。 不再! 这里是哪里 gcp 实用程序提供帮助。 gcp (G关闭的 cp) 是一款先进的文件复制工具,深受传统文件的启发 cp 命令实用程序,但具有一些附加功能。 它是完全免费的开源软件,在 GNU 通用公共许可证下发布。

不像 cp 命令,gcp 实用程序提供以下高级功能:

  • 显示复制进度指示器,包括估计时间、当前文件速度等。
  • 即使出现问题,gcp 也会继续复制。 它只会跳过有问题的文件复制并复制下一个文件。
  • 它可以复制单个或多个文件或文件夹。
  • gcp 记录其所有操作。 因此,我们可以很容易地找到哪些文件已成功复制。
  • 如果您不小心取消了复制过程,它将保留记录。 它不会删除内容,而是保留部分复制的内容。 然后,您可以再次运行复制过程,它将复制您离开它的其余文件。
  • 如果您在另一个副本已在运行时启动副本,则文件将添加到第一个队列中,这样可以避免您的硬盘驱动器一直移动其读/写头。
  • 您可以保存您复制的文件列表,并稍后从该列表中再次复制它们。 当您要将相同的文件复制到多个目标时,它将非常有用。

推荐下载免费备忘单:“Vim 备忘单”

在这个简短的指南中,我将向您展示如何在 Linux 和类 Unix 操作系统中安装和 gcp。

在 Linux 上安装 gcp

gcp 在 Debian 和 Ubuntu 的默认存储库中可用。 您只需从终端运行以下命令即可安装:

$ sudo apt-get install gcp

对于 Arch Linux 及其衍生产品,它在 AUR 中可用。 因此,您可以使用任何 AUR 助手安装它,例如 example .

$ yay -S python-gcp-git

然后,安装 python-进度条 包,用于在复制文件时显示进度条。

$ yay -S python-progressbar

gcp 也可用 在 PyPI 上,你可以安装它 Pip 包管理器 如下所示:

$ pip3 install gcp

最后,安装 python-progressbar。

Debian/Ubuntu:

$ sudo apt-get install python-progressbar

如何在 Linux 中使用 gcp,高级文件复制器

gcp 的用法与 cp 命令的用法几乎相同。

gcp 的典型用法是:

gcp [OPTIONS] FILE DEST
gcp [OPTIONS] FILE1 [FILE2...] DEST-DIR

让我给你看一些实际的例子。 以下命令将复制的内容 目录1 到一个名为 目录2.

$ gcp Dir1/video.mp4 Dir2/

样本输出:

Copying 876.53 MiB 100% |############################| 30.08 MB/s Time: 0:00:30

正如您在上面的输出中看到的,gcp 命令显示了复制进度指示器,包括估计时间、当前文件速度等。这将使我们很容易找到真正发生的事情。

要复制多个文件,只需依次指定它们和目标目录,如下所示。

$ gcp file1 file2 Dir

要将文件夹复制到另一个文件夹,请使用 -r 像下面这样的标志。

$ gcp -r Dir1/ Dir2/

如果您不想看到进度条,可以使用禁用它 --no-progress 旗帜。

$ gcp --no-progress source destination

如果目标文件夹已经有相同的文件,您将收到以下警告消息:

File [/home/sk/Dir2/video.mp4] already exists, skipping it !
/! THE FOLLOWING FILES WERE *NOT* SUCCESSFULY COPIED:
 - /home/sk/Dir1/video.mp4
--

Please check journal: /home/sk/.gcp/journal

您可以验证日志文件之前的文件处理是否成功完成。

$ cat /home/sk/.gcp/journal

输出:

/home/sk/Dir1/video.mp4
OK:

如果输出是 好的,复制过程成功。 如果输出是 部分的这意味着文件被复制了,但是出了点问题(例如更改文件的权限)。 失败的 意思是 – 文件没有被复制。

有关 gcp 实用程序的更多详细信息,请运行以下命令:

$ gcp --help

或者,参考手册页。

$ man gcp

更新:

进度条为 cpmv 可以使用名为的补丁轻松添加命令 “高级副本”. 有关详细信息,请查看以下链接。

高级复制 – 在 Linux 中为 cp 和 mv 命令添加进度条

资源:

  • 如何使用“pv”命令通过管道监控数据的进度
  • 如何在 Linux 和 Unix 中通过网络快速传输大文件