在 Linux 中复制/移动文件时使用带进度条的高级复制命令

linuxoperating systemopen source更新于 2026/2/2 21:07:17

作为 Linux 用户,您可能遇到过需要将大型文件或目录从一个位置复制或移动到另一个位置的情况。此过程可能需要一些时间,并且监控复制或移动操作的进度可能具有挑战性。

幸运的是,Linux 提供了一些内置命令,可以帮助您高效地复制或移动文件,并监控操作进度。在本文中,我们将讨论在 Linux 中复制/移动文件时使用带进度条的高级复制命令。

什么是高级复制命令?

高级复制(或"cp")命令是 Linux 内置命令,用于将文件或目录从一个位置复制到另一个位置。此命令预装在大多数 Linux 系统中,并被系统管理员、开发人员和 L​​inux 爱好者广泛使用。

cp 命令提供了多个选项,允许您自定义复制操作,例如保留文件属性、递归复制等等。但是,默认情况下,cp 命令在复制或移动文件时不提供任何进度条。

为什么需要进度条?

复制或移动大型文件或目录时,可能需要花费大量时间,并且确定操作完成剩余时间可能很困难。这时进度条就派上用场了。

进度条是复制或移动操作进度的图形表示。它显示已完成的操作百分比以及操作完成剩余的时间。这在需要监控复制或移动操作进度的情况下非常有用。

使用"pv"命令显示进度条

"pv"命令是一个 Linux 实用程序,可用于监控数据通过管道的进度。此命令可与其他 Linux 命令(例如"cp")结合使用,以在复制或移动文件时显示进度条。

要将"pv"命令与"cp"命令一起使用,您需要将"cp"命令的输出通过管道传输到"pv"命令。以下是示例 -

$ cp -r /path/to/source /path/to/destination | pv -lep -s $(du -sb /path/to/source | awk '{print $1}') >/dev/null

让我们分解一下命令 -

  • "cp -r /path/to/source /path/to/destination"是复制命令,用于将源目录复制到目标目录。

  • 管道符"|"将"cp"命令的输出发送到"pv"命令。

  • "pv"命令用于显示进度条。

  • "-lep"是"pv"命令的选项。 "-l"启用速率限制,"-e"显示预计到达时间 (ETA),"-p"显示进度条。

  • "-s $(du -sb /path/to/source | awk '{print $1}')"选项用于指定源目录的大小(以字节为单位)。此选项对于准确计算复制操作的进度至关重要。

  • "/dev/null"将"pv"命令的输出重定向到空设备,并丢弃该输出。

使用"rsync"命令显示进度条

另一个可用于复制或移动文件并显示进度条的命令是"rsync"命令。"rsync"命令是一个功能强大的实用程序,可用于在两个位置之间同步文件。

要使用带有进度条的"rsync"命令,可以使用"-P"选项。这是一个例子 -

$ rsync -aP /path/to/source /path/to/destination

让我们分解一下命令 -

  • "rsync"命令用于在两个位置之间同步文件。

  • "-a"选项用于启用归档模式,该模式会保留文件属性、权限、时间戳等。

  • "-P"选项用于显示进度条,并显示传输进度、传输速率、预计到达时间等信息。

使用"bar"命令显示进度条

另一个可用于在复制或移动文件时显示进度条的实用程序是"bar"命令。"bar"命令是一个简单的实用程序,可在终端中显示进度条。

要将"bar"命令与"cp"命令一起使用,可以将"cp"命令的输出通过管道传输到"bar"命令。以下是示例 -

$ cp -r /path/to/source /path/to/destination | bar

让我们分解一下命令 -

  • "cp -r /path/to/source /path/to/destination"是将源目录复制到目标目录的复制命令。

  • 管道"|"将"cp"命令的输出发送到"bar"命令。

  • "bar"是显示进度条的命令。

除了上面讨论的实用程序之外,还有其他几个选项可以在 Linux 中复制或移动文件时显示进度条。其中一些选项包括:-

  • "gcp"命令 - "gcp"命令是"cp"命令的包装器,它为复制操作添加了进度条。大多数 Linux 发行版不包含此命令,因此您可能需要手动安装它。

  • "progress"命令 - "progress"命令是一个 Linux 实用程序,可用于显示各种操作(包括复制和移动文件)的进度条。此命令可与其他命令(例如"cp"或"mv")结合使用以显示进度条。

  • "bar-1.11"软件包 - "bar-1.11"软件包是一组 Shell 脚本,可用于显示各种操作(包括复制和移动文件)的进度条。此软件包可安装在大多数 Linux 发行版上。

  • "dialog"命令 - "dialog"命令是一个 Linux 实用程序,可用于在终端中创建对话框和菜单。此命令可用于在复制或移动文件时显示进度条。

选择显示进度条的方法时,务必考虑易用性、与 Linux 发行版的兼容性以及可靠性等因素。虽然某些方法可能比其他方法更复杂,但它们也可能提供更高级的特性和功能。

总的来说,在 Linux 中复制或移动文件时显示进度条是监控操作进度和估算剩余完成时间的绝佳方法。通过使用本文讨论的命令和实用程序,您可以执行高效的文件操作并有效地管理文件。

结论

总而言之,Linux 提供了一些内置命令和实用程序,可用于复制或移动文件,并显示进度条来监控操作进度。"pv"命令、"rsync"命令和"bar"命令是一些可用于此目的的实用程序。

在复制或移动文件时,监控操作进度始终是一个好习惯,以确保操作成功完成且没有任何错误。进度条是监控进度和估算操作剩余时间的绝佳工具。

作为 Linux 用户,熟悉这些命令和实用程序对于执行高效的文件操作并有效地管理文件至关重要。


相关文章


有用资源