Linuxコマンド - pv
ナビゲーションに移動
検索に移動
概要
pv(Pipe Viewer)は、ターミナル向けソフトウェアであり、パイプを通して送られるデータを監視するために使用する。
以下に示すようなことを、視覚的に表示することができる。
- 経過時間
- 完了した進行状況 (パーセント)
- 現在のデータ転送速度 (スループットレートとも呼ばれる)
- 転送されたデータ
- ETA(予想時間)(残り時間)
pvのインストール
パッケージ管理システムからインストール
# RHEL sudo dnf install pv # SUSE sudo zypper install pv
ソースコードからインストール
pvの公式Webサイト、または、pvのCodebergにアクセスして、ソースコードをダウンロードする。
なお、pvのGithubは閉鎖予定である。
ダウンロードしたファイルを解凍する。
tar xf pv-<バージョン>.tar.gz cd pv-<バージョン>
pvをビルドおよびインストールする。
./generate.sh mkdir build && cd build ../configure --prefix=<pvのインストールディレクトリ> make -j $(nproc) make install
pvのオプション
- 表示関連
- -progress または -p
- プログレスバーを表示する。
- -timer または -t
- 経過時間を表示する。
- -eta または -e
- 操作にかかる推定時間を表示する。
- 推定時間は、前回のデータ転送レートと転送するデータのサイズに基づいて決定する。
- -rate または -r
- 操作のレートカウンターを有効にする。
- -bytes または -b
- 現在までに転送されたデータ量の合計を表示する。
- -numeric または -n
- 視覚的な表示ではなく、整数によるパーセンテージを表示する。
- -quiet または -q
- 何も出力しない。
- -progress または -p
- 出力関連
- -wait または -W
- 1バイト目の転送を待って進行状況を表示する。
- -interval <秒数> または -i <秒数>
- 更新の時間間隔を指定する。
- -force または -F
- 操作を強制する。
- つまり、標準エラーが端末に出力されない場合でも、pvにより強制的に表示させる。
- -size <バイト数> / -s <バイト数>
- 転送されるデータの合計を<バイト数>バイトと仮定して、パーセンテージやETAを計算する。
- -line-mode または -L
- サイズを数える代わりに、新しい行が見つけた時はプログレスバーを移動させる。
- -name <名前> または -n <名前>
- 出力情報の前に名前を付ける。
- -cursor または -c
- カーソルの位置決めにキャリッジリターンの代わりにエスケープシーケンスを使用する。
- -wait または -W
- データ転送関連
- -rate-limit <レート数> または -L <レート数>
- 1秒間に<レート数>バイトまでしか転送できないように制限する。
- -buffer-size <バイト数> または -B <バイト数>
- 転送バッファのサイズを<バイト数>バイトにする。
- -remote <PID> または -R <PID>
- <PID>がpvのインスタンスである場合、インスタンスのコマンドラインを指定することにより、そのインスタンスを動作させる。
- -rate-limit <レート数> または -L <レート数>
pv
コマンドのオプションを付加しない場合、-p
、-t
、-e
、-r
、-b
のオプションがデフォルトで選択される。
pvの使用方法
pvは、上記セクションにあるような機能を持たないソフトウェアの進捗を監視する機能を提供するために使用される。
2つのプロセスの間にパイプ演算子(|
)を置くことで使用することができる。
# pvコマンドのシンタックス pv <ファイル名> pv <オプション> <ファイル名> pv <ファイル名> > <出力先のファイル名> pv <オプション> | <コマンド> > <出力先のファイル名> <コマンド1> | pv | <コマンド2>
pv
コマンドの標準入力が標準出力に渡されて、その結果が標準エラーに出力される。
cp
コマンドでプログレスバーを表示する。
pv history.log > ~/history.log
行数、ワード数、バイト数を数える。
pv -p history.log | wc
tar
コマンドの進捗を表示する。
# 圧縮 tar czf - <ファイル名またはディレクトリ名> | pv -p --timer --rate --bytes > <ファイル名>.tar.gz # 解凍 pv -p --timer --rate --bytes <ファイル名>.tar.gz | tar zxf - pv -p --timer --rate --bytes <ファイル名>.tar.gz | tar zxf - <解凍先のファイル名> pv -p --timer --rate --bytes <ファイル名>.tar.gz | tar zxf - > <解凍先のファイル名>
zip
コマンドでプログレスバーを表示する。
pv history.log | zip > ~/history.zip