Linuxでファイルコピー時に進捗状況を確認する6つの方法

Linuxで普通にcpコマンドを利用していると、そのコピーの進捗状況がわからない事が多い。
コピーの進捗状況を調べるには、どうすればよいのだろうか?

1.cp実行時に「-v」オプションを用いる

正確な進捗状況(各ファイルごとに何%までコピーが完了したか)はわからないが、「どのファイルまではコピーが完了したか」を把握するのであれば、cpコマンドで「-v」オプションを利用することで、今どのファイルをコピーしているのかが把握出来る。

2.cvコマンドを利用する

以前こちらで紹介したcvコマンドを利用することで、マシン上で実行されているcp,mvの進捗状況を確認することが出来る。

$ cv

「-M」オプションを付与することで、モニタモードで監視することも出来る。

cv -M

ただ、cpをフロントで実行している場合、別途ターミナルをアップする必要があるので注意。
バックグラウンドで実行させているならば、これで進捗状況を監視することが可能だ。

3.cpコマンドの代わりにrsyncコマンドを利用する

cpコマンドを実行する代わりに、rsyncコマンドを用いる事で、進捗状況を画面上に出力することが可能だ。

rsync -av --progress コピー元 コピー先

4.cpコマンドの代わりにpvコマンドを利用する

cpコマンドの代わりに、pvコマンドを利用することで、cpプロセス全体の進捗状況を確認することが出来る。

pv コピー元 > コピー先

5.cpコマンドの代わりにvcp、gcpコマンドを利用する

cpコマンドの代わりに、vcp、gcpコマンドという、進捗状況を出力するコマンドを利用する方法もある。

vcp -Rv コピー元 コピー先

dbus-launch gcp -rv コピー元 コピー先

6.強化版のcpコマンド・mvコマンドを利用する

以前にこちらの記事でも触れたが、LinuxのCoreutilsのソースに有志の作成したパッチを当てることで、既存のcpコマンド、mvコマンドにプログレスバーの出力オプションを付け加える事も出来る。