You can do this with inotifywait
utility from inotify-tools
package
while true ; do inotifywait -e delete_self "/tmp/fileToMonitor.txt" \ && cp new_file "/tmp/fileToMonitor.txt" done
[ "$UID" -eq 0 ] || exec sudo "$0" "$@" while true ; do inotifywait -e modify "/etc/resolv.conf" && ./dns.sh done
References
https://superuser.com/questions/939600/how-to-get-notified-when-a-specific-file-is-deleted-in-linux
https://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes
http://man7.org/linux/man-pages/man1/inotifywait.1.html#EVENTS