rmコマンドの進行状況を判断することは可能ですか?


18

を使用rm -rf LargeDirectoryして大きなディレクトリを削除すると、ディレクトリのサイズによっては完了するまでに長い時間がかかる場合があります。

ステータスの更新を取得するか、この削除の進行状況を何らかの方法で監視して、コマンドがプロセスのどこに沿っているかについて大まかな見積もりを出すことは可能ですか?


4
試してくださいwatch -n 5 du -s LargeDirectory。ゼロになるのを見てください。
マークプロトニック

@MarkPlotnick:MacOSでは、でインストールするbrew install watchか、手順についてはこちらをご覧ください。
smci

回答:


19

から

man rm 

-vオプションを使用します。

-v, --verbose
explain what is being done

4
しかしそれは進歩していません。「foo / barの削除」は、完全なものがどれだけ離れているかを判断するのにどのように役立ちますか?
空飛ぶ羊

...それは、アルファベット順にすべてのものを削除し、それが何らかの方法で助けを行いますので、少なくともOSXで、それは、ないと信じて@flyingsheep
ティム・バース

7

質問は古いようです。他の人の助けになるかもしれないことを共有したいと思います。

pvコマンドラインのPipe Viewerを使用してプログレスバーを取得します

これはコマンドです

rm -rv DIR_OR_FILE_NAME | pv -l -s $(du -a DIR_OR_FILE_NAME | wc -l)> / dev / null

削除するディレクトリまたはファイルのルート権限が必要な場合、

sudo rm -rv DIR_OR_FILE_NAME | pv -l -s $(sudo du -a DIR_OR_FILE_NAME | wc -l)> / dev / null
  • rm -rv-rDIRおよびファイルを再帰的に削除します。-v詳細は、削除するすべてのファイルとディレクトリをリストします。

  • pv -l -s-lバイトではなく行をカウントします。-s削除する合計行を設定します。

  • $( du -a <dir_or_file> | wc -l )du -a指定されたディレクトリからすべてのファイルとディレクトリのリストを返します。wc -lによって出力されdu -aた行数を返します。

  • > /dev/null:の出力rm -rvをどこにも送信しません。


良いアイデア。名前に改行が含まれていると、ファイル/ディレクトリのカウントが正しくない場合があります。find {dir} -printf . | wc -cより安全になります(ただし-printfGNU拡張機能です)。
スコット

これは実際に私が探していたものです、ありがとう。他のコメントは何か不足していました。
ヘルリーバー

3

Coreutils Progress Viewer(cv)を使用して、現在実行中のコマンドの進行状況を表示できます。単一のコマンドを発行するようなものではありませんが、進行状況を確認できます。

使用されているCVの例

誰かがコマンドでこれを実行するエイリアスを思いつくことができると確信しています。でも動作しcp, mv, dd, tar, gzip/gunzip, cat, etc.ます。詳細については、次を参照してください。

gitthub Xfennec / progress


2
進行状況(現在「cv」が知られている)は開いているファイルを追跡し、rmは削除したファイルを開かないため、これは実際にはあまり役に立ちません。
-dhag

2
@dhagあなたの権利、これはrmでうまくいくと思いました。今、答えを削除するかどうかを議論しています。うーん
アシタカラックス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.