私は30TBのディレクトリを持っており、正式にはすべてJPEGファイルである数十億のファイルが含まれています。次のようなファイルの各フォルダを削除しています:
sudo rm -rf bolands-mills-mhcptz
このコマンドは実行されるだけで、機能しているかどうかに関係なく何も表示されません。
ファイルを削除しているのか、コマンドの現在のステータスを確認したいのですが。
承認された回答:
rm -vを使用できます rmを持つ 削除されたファイルごとに1行を印刷します。このようにして、その rmを確認できます。 確かにファイルを削除するために働いています。ただし、数十億のファイルがある場合は、 rmだけが表示されます。 まだ動作しています。すでに削除されているファイルの数と、残っているファイルの数はわかりません。
ツールpv 進捗状況の見積もりに役立ちます。
http://www.ivarch.com/programs/pv.shtml
rmを呼び出す方法は次のとおりです。 pvを使用 出力例付き
$ rm -rv dirname | pv -l -s 1000 > logfile
562 0:00:07 [79,8 /s] [====================> ] 56% ETA 0:00:05
この不自然な例では、 pvに伝えました 1000があること ファイル。 pvからの出力 は、562がすでに削除されており、経過時間が7秒で、完了までの見積もりが5秒であることを示しています。
説明:
-
pv -l </ code>pvを作成します バイトではなく改行でカウントする -
pv -s numberpvに通知します 見積もりができるように、合計は何ですか。 -
logfileへのリダイレクト 最後にクリーンな出力用です。それ以外の場合は、pvのステータス行rm -vからの出力と混同されます 。ボーナス:削除されたもののログファイルがあります。ただし、ファイルが巨大になることに注意してください。/ dev / nullにリダイレクトすることもできます ログが必要ない場合。
ファイル数を取得するには、次のコマンドを使用できます:
$ find dirname | wc -l
数十億のファイルがある場合も、これには長い時間がかかる可能性があります。 pvを使用できます ここでも、カウントされた量を確認できます
$ find dirname | pv -l | wc -l
278k 0:00:04 [56,8k/s] [ <=> ]
278044
ここでは、278kファイルをカウントするのに4秒かかったと書かれています。最後の正確なカウント( 278044 )は wc -lからの出力です 。
カウントを待ちたくない場合は、ファイルの数を推測するか、 pvを使用できます。 見積もりなし:
$ rm -rv dirname | pv -l > logfile
このように、終了する見積もりはありませんが、少なくとも、すでに削除されているファイルの数がわかります。 / dev / nullにリダイレクトします ログファイルが必要ない場合。
Nitpick:
- 本当に
sudoが必要ですか ? - 通常は
rm-r再帰的に削除するには十分です。rm -fは必要ありません 。