web-dev-qa-db-ja.com

「mail」コマンドを使用して一連の電子メールメッセージを削除する

受信トレイに約1千通以上のメールがあります(古いcronjob stdout)。それらを一括で削除するにはどうすればよいですか?

私はSolaris 8を使用していますが、mailしか使用できず、pinemutt、または同様の「UI」ベースのクライアントはありません。

インラインヘルプとマニュアルページでは、特定のメールを削除するためにd #のみを提供しています。たとえばd 1 - 100を試しましたが、うまくいきませんでした。そして、私はdを1000回行う気がしません。

この受信トレイをクリーンアップする方法はありますか? x日以上経過したすべてのメールを実際に削除したいのですが。

10
GWu

mailを使用できない場合や、pineまたはmuttがない場合は、おそらくdomailxを持っています。そしてmailxd 5-10またはd *

16
bahamat

以下は、1秒間のメールの読み取り、メールの削除、次のメールへの移動に役立ちます。すべてのメールが削除されている場合、ループは停止します。

もう少し時間が欲しいですか?睡眠を2以上に変更します。もっと早くしたいですか? sleep 1をダミーコマンドに置き換えます。

while (echo dq |mail) do sleep 1 ;done
2
Geert

d 1からd 100を実行する場合は、その一連のコマンドを生成して、直接mailにパイプすることができます。

i=1; while [ $i -le 100 ]; do echo d $i; i=$(($i+1)); done | mail
2
Jim Paris