私は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 number
pv
に通知します 見積もりができるように、合計は何ですか。 -
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
は必要ありません 。