使用'mail'命令删除一系列电子邮件


10

我的收件箱(旧的cronjob stdout)中有大约1k +邮件。如何批量删除它们?

我在Solaris 8和我只有mail可用的,没有pinemutt或类似的“UI”为基础的客户端。

内联帮助和手册页仅d #用于删除特定邮件。例如,我尝试过d 1 - 100但没有运气。而且我不想做d1000次。

有什么想法如何清理此收件箱吗?我实际上想清除所有超过x天的邮件。

Answers:


17

虽然mail可能无法,而且您可能没有,pine或者mutt您可能确实mailx。并且mailx可以d 5-10还是d *


2

如果要执行d 1直通d 100,则可以生成该命令序列并将其直接传递给mail

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

我没有要检查的Solaris。如果您运行d 1,它会重新编号后续的电子邮件吗?如果是这样,则需要向后循环或运行d 1100次。
吉尔(Gilles)'所以

2

以下内容将帮助您在1秒钟内阅读邮件,删除邮件并转到下一封邮件。如果所有邮件都已删除,则循环将停止。

需要更多时间吗?将睡眠时间更改为2或更多。想要更快吗?用虚拟命令替换sleep 1。

while (echo dq |mail) do sleep 1 ;done
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.