cpプロセスの実行の進行状況を確認することはできますか?一部のプロセスはさまざまなKILLシグナルに応答するため、それらのステータスを確認できます。パラメータ-vを指定してcpを実行できることはわかっていますが、それを忘れた場合、cpは非常に長時間実行されており、どのファイルがコピーされているか、またはすでにコピーされているファイルの数を知りたいのです。
承認された回答:
はい、ターゲットファイルとローカルファイルでstatを実行し、ファイルサイズを取得します。
つまり、stat -c "%s" /bin/ls
そして、2つの値を比較することで、コピーされたデータの割合を取得します。それだけです
次のような非常に基本的な実装の場合:
function cpstat()
{
local pid="${1:-$(pgrep -xn cp)}" src dst
[[ "$pid" ]] || return
while [[ -f "/proc/$pid/fd/3" ]]; do
read src dst < <(stat -L --printf '%s ' "/proc/$pid/fd/"{3,4})
(( src )) || break
printf 'cp %d%%r' $((dst*100/src))
sleep 1
done
echo
}