更新された進行状況バー

更新された進行状況バー

実行中に信頼できるプログレスバー(または所要時間に関する信頼できる情報)を取得できますかupdatedb

ベストアンサー1

これは効率的な解決策ではありませんが、すべてを2回繰り返すほど悪くはありません。

処理されたファイルの数はupdatedb次のとおりです。

updatedb -v | wc -l

またはおおよそ次のとおりです。

find / -mount | wc -l

このコマンドは2回繰り返されるため、数値を取得するために使用することはできません。

ただし、使用されているinodeの数を使用できますが、これはほぼ同じです。

df -i | grep '/$' | awk '{print $3}'

updatedb -vこの値を使用すると、コマンドの実行中に移動した距離を計算できます。

count=$(df -i | grep '/$' | awk '{print $3}')

sudo updatedb -v | while read
do
    printf "%3d\r" $((100 * (++i) / count))
done

printfこれは、出力のすべての行に対して呼び出されるため、非常に非効率的ですupdatedb -vprintf特定の行だけを処理する方が良いでしょう。

count=$(df -i | grep '/$' | awk '{print $3}')

sudo updatedb -v | while read
do
    if (( ++i % (count/20) == 0 )); then
        printf "%3d\r" $((100 * i / count))
    fi
done

おすすめ記事