#!/bin/sh # function die() { echo "$*"; exit 1; } if [ -z "$1" ]; then echo "$0 - mv Maildir files older than days to the 'old' tree" echo echo "usage: $0 " echo echo " is the age of mails to archive (in days)" echo exit 1 fi AGE=$1 cd $HOME/Maildir || die "Couldn't cd to $HOME/Maildir" [ $(basename $(pwd)) = "Maildir" ] || die "Must be in directory Maildir" # Make sure there are Maildirs in old corresponding to all non-old Maildirs find . \ \( -path './old' -prune \) \ -o \( -path './inbox' -prune \) \ -o \( -path './logcheck' -prune \) \ -o \( -path './memberships' -prune \) \ -o \( -path './postponed' -prune \) \ -o \( -path './projects' -prune \) \ -o \( -path './rss' -prune \) \ -o \( -path './save' -prune \) \ -o \( -path './spam' -prune \) \ -o \( -path './to_be_filed' -prune \) \ -o \( -path './voicemail' -prune \) \ -o -type d \ -exec mkdir -p old/\{\} \; # Move all files greater than $AGE, except for old and inbox trees find . \ \( -path './old' -prune \) \ -o \( -path './inbox' -prune \) \ -o \( -path './logcheck' -prune \) \ -o \( -path './memberships' -prune \) \ -o \( -path './postponed' -prune \) \ -o \( -path './projects' -prune \) \ -o \( -path './rss' -prune \) \ -o \( -path './save' -prune \) \ -o \( -path './spam' -prune \) \ -o \( -path './to_be_filed' -prune \) \ -o \( -path './voicemail' -prune \) \ -o -type f -mtime +$AGE \ -exec mv \{\} old/\{\} \;