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


10

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

私はSolaris 8をmail使用していますが、「UI」ベースのクライアントしか利用できないpineか、muttまたは利用できません。

インラインヘルプとマニュアルページではd #、特定のメールの削除のみが許可されています。私は例えば試みたd 1 - 100が運がなかった。そして、私はd1000回行う気がしません。

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

回答:


17

一方ではmailできないことがあり、あなたが持っていないpineか、muttあなたはおそらくない持っていますmailx。そして、またはmailxすることができます。d 5-10d *


2

d 1through を実行する場合はd 100、その一連のコマンドを生成し、それを直接パイプして次のように実行できますmail

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

ここには確認するSolarisがありません。を実行するとd 1、後続のメールの番号が付け直されますか?その場合は、逆方向にループするか、d 1100回実行する必要があります。
Gilles「SO-悪をやめなさい」

2

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

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

while (echo dq |mail) do sleep 1 ;done
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.