Elimina una serie di messaggi e-mail utilizzando il comando "mail"


10

Ho circa 1k + mail in una casella di posta (vecchio cronjob stdout). Come posso eliminarli in blocco?

Sono su Solaris 8 e ho solo maildisponibili, senza pineo mutto simili "UI" client-based.

La guida in linea e la pagina man forniscono solo d #per eliminare un messaggio specifico. Ci ho provato ad esempio d 1 - 100ma senza fortuna. E non mi va di farlo d1000 volte.

Qualche idea su come ripulire questa casella di posta? Vorrei davvero eliminare tutte le mail più vecchie di x giorni.

Risposte:


17

Anche se mailpotrebbe non essere in grado di, e non si hanno pineo muttprobabilmente fanno avere mailx. E mailxpuò d 5-10o d *.


2

Se si desidera eseguire un d 1through d 100, è possibile generare quella sequenza di comandi e reindirizzarlo direttamente a mail:

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

Non ho Solaris qui da controllare. Se corri d 1, rinumera le email successive? In tal caso, è necessario eseguire il ciclo indietro o eseguire d 1100 volte.
Gilles 'SO- smetti di essere malvagio'

2

Di seguito ti aiuterà a leggere i messaggi per 1 secondo, a eliminare i messaggi e passare a quello successivo. Se tutti i messaggi sono stati eliminati, il ciclo si interromperà.

Vuoi ancora un po 'di tempo? Cambia il sonno a 2 o più. Lo vuoi più veloce? Sostituisci il sonno 1 con un comando fittizio.

while (echo dq |mail) do sleep 1 ;done
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.