Supprimer une plage d'e-mails à l'aide de la commande «mail»

10

J'ai environ 1k + mails dans une boîte de réception (ancien stdout cronjob). Comment les supprimer en bloc?

Je suis sur Solaris 8 et je ne maildisponible, pas pineou muttou similaire « interface utilisateur » client basé.

L'aide en ligne et la page de manuel ne permettent d #de supprimer qu'un e-mail spécifique. J'ai essayé par exemple d 1 - 100mais pas de chance. Et je n'ai pas envie de faire d1000 fois.

Des idées pour nettoyer cette boîte de réception? Je voudrais en fait purger tous les courriers de plus de x jours.

GWu
la source

Réponses:

17

Alors que mailpeut ne pas être en mesure, et vous n'avez pas pineou muttvous probablement n'avoir . Et peut ou .mailxmailxd 5-10d *

bahamat
la source
2

Si vous souhaitez exécuter un d 1travers d 100, vous pouvez générer cette séquence de commandes et la diriger directement vers mail:

i=1; while [ $i -le 100 ]; do echo d $i; i=$(($i+1)); done | mail
Jim Paris
la source
Je n'ai pas de Solaris ici pour vérifier. Si vous exécutez d 1, cela renumérote-t-il les e-mails suivants? Si tel est le cas, vous devez effectuer une boucle en arrière ou exécuter d 1100 fois.
Gilles 'SO- arrête d'être méchant'
2

Les informations suivantes vous aideront à lire les e-mails pendant 1 seconde, à supprimer les e-mails et à passer au suivant. Si tous les e-mails ont été supprimés, la boucle s'arrêtera.

Vous voulez plus de temps? Changez le sommeil à 2 ou plus. Vous le voulez plus vite? Remplacez sleep 1 par une commande fictive.

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