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コマンドにプログレスバーの出力オプションを付け加える事も出来る。