进度 - 显示(cp、mv、dd、tar)命令的复制数据百分比
Progress,以前称为Coreutils Viewer,是一个轻量级的C命令,用于搜索系统上当前正在执行的coreutils 基本命令,例如cp、mv、tar、dd、gzip/gunzip、cat、grep等,并显示复制数据的百分比,它只能在 Linux 和 Mac OS X 操作系统上运行。
此外,它还显示预计时间和吞吐量等重要方面 ,并为用户提供“顶级”模式。
它彻底扫描/proc 文件系统以查找有趣的命令,然后搜索fd
和fdinfo
目录以查找打开的文件的搜索位置,并报告大量文件的状态。重要的是,它是一种非常轻量级的工具,并且几乎与任何命令兼容。
如何在 Linux 上安装进度查看器
Progress需要ncurses库才能工作,因此在继续安装之前请先安装libncurses ,方法是运行以下相应的命令:
$ sudo apt install libncurses5-dev [On Debian, Ubuntu and Mint] $ sudo yum install ncurses-devel [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a ncurses-devel [On Gentoo Linux] $ sudo apk add ncurses-dev [On Alpine Linux] $ sudo pacman -S ncurses-devel [On Arch Linux] $ sudo zypper install ncurses-devel [On OpenSUSE]
在基于 rpm 的发行版(例如 Red Hat、CentOS、Fedora、SUSE、Rocky、AlmaLinux 等)上,运行以下命令之一:
$ sudo dnf install progress $ sudo yum install progress
在基于 deb 的系统(Debian、Ubuntu、Mint 等)上运行:
$ sudo apt install progress
在 Arch Linux 上,运行:
$ sudo pacman -S progress
在其他 Linux 发行版上,你可以从其 Github 存储库克隆或下载包文件,如下所示:
# git clone https://github.com/Xfennec/progress.git
接下来,进入进度目录并构建它,如下所示:
$ cd progress $ make $ sudo make install
成功安装后,只需从终端运行此工具,下面我们将介绍在 Linux 系统上使用Progress的几个示例。
监控 Linux 中的命令进度
你可以通过不带任何选项运行Progress来查看它所使用的所有coreutils命令,前提是系统上未执行任何 coreutils 命令:
$ progress
要显示估计的 I/O 吞吐量以及正在进行的 coreutils 命令的估计剩余时间,请启用该-w
选项:
$ progress -w
显示文件复制进度
要查看cp 命令的进度,在复制大文件时,请运行:
$ cp GhostBSD.vdi /home/example/Downloads/ & progress -mp $!
显示移动文件的进度
要在移动大文件时查看mv 命令的进度,请运行:
$ mv GhostBSD.vdi /media/example/Personal_Data/ & progress -mp $!
显示 Tar 文件的进度
要在创建 tar 存档时查看tar 命令的进度,请运行:
$ tar czf images.tar.gz linuxmint-18-cinnamon-64bit.iso CentOS-7.0-1406-x86_64-DVD.iso CubLinux-1.0RC-amd64.iso | progress -m $!
显示多个命令的进度
在下一个示例中,您可以打开两个或多个终端窗口,然后在每个终端窗口中运行 coreutils 命令,并使用另一个终端窗口观察它们的进度,如下图所示。
以下命令将使您能够监视 coreutils 命令的所有当前和即将发生的实例:
$ watch progress -q
要了解更多有趣的选项,请查看进度手册页或访问https://github.com/Xfennec/progress:
$ man progress
结论
总而言之,这是一个非常有用的工具,用于监控 coreutils 命令的进度,特别是在复制或存档和压缩大文件时,还有更多。
如果您已成功安装它,请使用它并通过下面的评论部分与我们分享您的经验。您也可以向我们提供一些很棒的使用示例,您发现它对重要的日常系统管理任务等很有帮助。