#!/bin/bash -e # Use with crontab entry like: # */5 * * * * $HOME/bin/monitor_dir /path/to/something if [ -z "$1" ]; then echo "Usage $0 dir [monitor_file]" exit 1 fi mon="$1/${2:-.monitor_dir}" mon_tmp="${mon}_tmp" ls -R "$1" > "$mon_tmp" if [ -r "$mon" ] && ! cmp -s "$mon" "$mon_tmp" && [ -n "$(ls "$1")" ]; then cat "$mon_tmp" fi mv "$mon_tmp" "$mon"