Skip to content

Instantly share code, notes, and snippets.

@stnvh
Created November 3, 2014 12:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stnvh/b59a1a041b64d5e9333a to your computer and use it in GitHub Desktop.
Save stnvh/b59a1a041b64d5e9333a to your computer and use it in GitHub Desktop.
Time machine mail search
#!/bin/bash
# Email search script
# by Stan Hutcheon
if [[ "$1" == "-h" ]] || [[ "$1" == "--help" ]]; then
echo 'usage: emailsearch [volume] [user] [backupname] [backupvolume] [query]'
exit
fi
if [[ "$1" ]]; then
VOLUME="$1"
fi
if [[ "$2" ]]; then
TUSER="$2"
fi
if [[ "$3" ]]; then
BACKUP="$3"
fi
if [[ "$4" ]]; then
BVOLUME="$4"
fi
if [[ "$5" ]]; then
QUERY="$5"
fi
if [[ -d "/Volumes/Time Machine" ]]; then
VOLUME="Time Machine"
fi
if [[ ! "$VOLUME" ]]; then
echo 'Begin by entering your time machine volume from the list below:'
ls -1 /Volumes
echo -n '>'
read VOLUME
fi
ABSVOLUME="/Volumes/$VOLUME"
if [[ ! -d "$ABSVOLUME/Backups.backupdb" ]]; then
echo 'ERROR: no backup directory found'
exit
fi
if [[ ! -d "$ABSVOLUME/Backups.backupdb/$USER" ]] && [[ ! "$TUSER" ]]; then
echo 'Please specify which time machine user backups to use:'
ls -1 "$ABSVOLUME/Backups.backupdb"
echo -n '>'
read TUSER
else
TUSER="$USER"
fi
if [[ ! -d "$ABSVOLUME/Backups.backupdb/$TUSER" ]]; then
echo 'ERROR: user folder doesnt exist'
exit
fi
if [[ ! "$BACKUP" ]]; then
echo 'Please choose a backup date and enter it below:'
sleep 1
ls -1 "$ABSVOLUME/Backups.backupdb/$TUSER/"
echo -n '>'
read BACKUP
fi
if [[ ! -d "$ABSVOLUME/Backups.backupdb/$TUSER/$BACKUP" ]]; then
echo 'ERROR: Backup date not found'
exit
fi
if [[ ! "$BVOLUME" ]]; then
echo 'Please choose a backup volume and enter it below:'
ls -1 "$ABSVOLUME/Backups.backupdb/$TUSER/$BACKUP"
echo -n '>'
read BVOLUME
fi
if [[ ! -d "$ABSVOLUME/Backups.backupdb/$TUSER/$BACKUP/$BVOLUME" ]]; then
echo 'ERROR: Backup volume not found'
exit
fi
if [[ ! "$QUERY" ]]; then
echo 'Please enter your search query:'
read QUERY
fi
FULLPATH="$ABSVOLUME/Backups.backupdb/$TUSER/$BACKUP/$BVOLUME"
find "$FULLPATH/Users/$TUSER/Library/Mail/V2" -name "*.emlx" -exec grep -l "$QUERY" {} \;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment