gcp-适用于Linux的高级文件复制器实用程序

时间:2020-03-21 11:47:55  来源:igfitidea点击:

大多数人都注意到cp命令在复制文件/文件夹时不会显示复制进度。
当我使用cp命令复制大文件时,我真的不知道它要花多长时间,或者当前复制的百分比是多少。
除了在复制大文件时查看终端上的闪烁光标图标和硬盘驱动器指示灯外,我不知道复制进度是否真的在进行。
这是gcp实用程序提供帮助的地方。
gcp(Goffi的cp)是一种高级文件复印机工具,其灵感来自传统的cp命令实用程序,但具有一些添加功能。
它是完全免费的开源软件,根据GNU通用公共许可证发行。

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

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

在这个简短的教程中,将介绍如何在类似Unix的操作系统中安装和gcp。

在Linux上安装gcp

gcp在Debian和Ubuntu的默认存储库中可用。
我们可以通过从终端运行以下命令来进行安装:

$sudo apt-get install gcp

对于Arch Linux及其派生版本,可在AUR中获得。
因此,我们可以使用任何AUR帮助器进行安装,例如Yay。

$yay -S python-gcp-git

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

$yay -S python-progressbar

gcp在PyPI上也可用,我们可以使用如下所示的Pip软件包管理器进行安装:

$pip3 install gcp

最后,安装python-progressbar。

Debian/Ubuntu:

$sudo apt-get install python-progressbar

如何使用高级文件复印机gcp

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

gcp的典型用法是:

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

让我为我们展示一些实际的例子。
以下命令会将Dir1的内容复制到名为Dir2的目录中。

$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:

如果输出正常,则复制过程成功。
如果输出为PARTIAL,则表示文件已复制,但是出了点问题(例如更改文件的权限)。
FAILED表示文件未复制。

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

$gcp --help

或者,请参考手册页。

$man gcp