如何将邮件从/ var / spool / mail / 移动到用户邮箱?

我需要一种方法(脚本),除了将用户mail-spool(/ var / spool / mail / theuser)的最后100条消息移动到用户邮件目录(/ home / theuser / mail)中的文件/ mbox )。 是否有捷径可寻?

这是一个快速和肮脏的开局。 没有错误检查,它实际上并没有“移动”任何东西。

#!/usr/local/bin/bash # # DIRTY hack to append all but the last 100 messages from each file # in a dir of mbox files to like named files in /tmp # # if an mbox has less than 101 messages, skip it # # requires formail (from the procmail installation..) # # we're writing in tmp - to write in the user's dir move this # inside the for loop and use $USERMAIL to write the base path DESTDIR="/tmp" for USERMAIL in `ls -1` do MESSAGECOUNT=`cat $USERMAIL | formail -q -s wc | wc -l | sed 's/^[ \t]*//'` COPYTHISMANY=`expr $MESSAGECOUNT - 100` if [ $COPYTHISMANY -gt 0 ] then echo "Copying $COPYTHISMANY messages from $USERMAIL to /tmp/$USERMAIL.allbutlast100" cat $USERMAIL | formail -$COPYTHISMANY -s cat >> $DESTDIR/$USERMAIL.allbutlast100 # copy the last 100 to a new file cat $USERMAIL | formail +$COPYTHISMANY -s cat >> $DESTDIR/$USERMAIL.last100 # to replace the original source mbox do something like # mv /tmp/$USERMAIL.last100 $USERMAIL fi done