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.

Jawaban:


17

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


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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.