概述
在 Linux 系統上進行備份和複制/移動大檔案時,您可能希望監視正在進行的進度。許多終端工具沒有允許您在管道中運作指令時檢視進度資訊的功能。在本文中,我們将了解一個重要的 Linux/Unix 指令,稱為pv – Pipe Viewer,可以幫你解決問題。
Pv是一種基于終端的工具,可讓您監控通過管道發送的資料的進度。使用pv指令時,它可以直覺地顯示以下資訊:
- 已經過去的時間。
- 完成百分比包括一個進度條。
- 顯示目前吞吐率。
- 傳輸的總資料。
- 和 ETA(預計時間)。
如何在 Linux 中安裝 pv 指令?
大多數 Linux 發行版預設不安裝pv指令,是以您可以按照以下步驟安裝它。
首先,您需要打開EPEL 存儲庫,然後運作以下yum或dnf指令進行安裝。
# yum install pv
OR
# dnf install pv
在其他 Linux 發行版上安裝 pv
$ sudo emerge -a pv [Gentoo Linux]
$ sudo apk add pv [Alpine Linux]
$ sudo pacman -S pv [Arch Linux]
$ sudo zypper install pv [OpenSUSE]
如何在Linux中使用pv指令?
pv主要與其他無法監控正在進行的操作進度的程式一起使用。您可以使用它,将它放在兩個程序之間的管道中,并提供适當的選項。pv的标準輸入将傳遞到它的标準輸出。它與 Linux 中的cat 指令具有相似的行為。
pv指令的文法如下:
$ pv file
$ pv options file
$ pv file > filename.out
$ pv options | command > filename.out
$ comand1 | pv | command2
顯示修飾符下選項
- 要打開顯示欄,請使用-p選項。
- 要檢視經過的時間,請使用--timer選項。
- 要打開 ETA 計時器,它會嘗試猜測在完成操作之前需要多長時間,請使用--eta選項。猜測是基于以前的傳輸速率和總資料大小。
- 要打開速率計數器,請使用--rate選項。
- 要顯示到目前為止傳輸的資料總量,請使用--bytes選項。
- 要顯示整數百分比的進度資訊而不是視覺訓示,請使用-n選項。當将pv與 dialog 指令一起使用以在對話框中顯示進度時,這可能很好
輸出修飾符下選項
- 要在顯示進度資訊之前等待第一個位元組傳輸完畢,請使用該--wait選項。
- 要在計算百分比和 ETA 時假設要傳輸的資料總量為SIZE--size SIZE位元組,請使用選項。
- 要指定更新之間的秒數,請使用該--interval SECONDS選項。
- 使用--force選項強制操作。當标準錯誤不是終端時,此選項強制 pv 顯示視覺效果。
- 一般選項是--help顯示使用資訊,-version顯示版本資訊。
Linux 中使用 pv 指令示例
1、檔案複制
例如,要将opensuse.vdi檔案複制到/tmp/opensuse.vdi
# pv opensuse.vdi > /tmp/opensuse.vdi
2、制作zip檔案
# pv /var/log/syslog | zip > syslog.zip
3、要在僅顯示進度條的同時統計/etc/hosts檔案中的行數、字數和位元組數,請運作以下指令。
# pv -p /etc/hosts | wc
4、使用tar 實用程式監控建立備份檔案的進度
# tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)
5、使用dd指令将ISO檔案寫入U盤
# dd if=debian-10.11.0-amd64-DVD-1.iso | pv | dd of=/dev/sda bs=4M
6、使用pv和dialog終端工具一起建立對話進度條如下
# tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70
小結
這是一個很好的基于終端的工具,您可以将其與不具備此功能的工具一起使用,以監視處理/移動/備份檔案等操作的進度。喜歡的朋友,趕緊試試吧!