Hapus serangkaian pesan email menggunakan perintah 'mail'

10

Saya memiliki sekitar 1 k + mail di kotak masuk (cronjob stdout lama). Bagaimana cara saya menghapusnya secara massal?

Aku di Solaris 8 dan saya hanya mailtersedia, tidak ada pineatau muttatau serupa "UI" client berbasis.

Bantuan inline dan halaman manual hanya memberikan d #untuk menghapus email tertentu. Saya sudah mencoba misalnya d 1 - 100tetapi tidak berhasil. Dan saya tidak merasa ingin melakukan d1000 kali.

Ada ide bagaimana cara membersihkan kotak masuk ini? Saya sebenarnya ingin membersihkan semua email yang lebih lama dari x hari.

GWu
sumber

Jawaban:

17

Sementara mailmungkin tidak dapat, dan Anda tidak memiliki pineatau muttAnda mungkin tidak memiliki mailx. Dan mailxbisa d 5-10atau d *.

bahamat
sumber
2

Jika Anda ingin mengeksekusi d 1through d 100, Anda dapat membuat urutan perintah dan mengirimkannya langsung ke mail:

i=1; while [ $i -le 100 ]; do echo d $i; i=$(($i+1)); done | mail
Jim Paris
sumber
Saya tidak punya Solaris di sini untuk memeriksa. Jika Anda menjalankan d 1, apakah ini memberi nomor baru email berikutnya? Jika demikian, Anda harus mengulang ke belakang atau menjalankan d 1100 kali.
Gilles 'SO- stop being evil'
2

Berikut ini akan membantu Anda membaca surat selama 1 detik, menghapus surat dan melanjutkan ke yang berikutnya. Jika semua email telah dihapus, loop akan berhenti.

Ingin lebih banyak waktu? Ubah tidur menjadi 2 atau lebih. Ingin lebih cepat? Ganti sleep 1 dengan perintah dummy.

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