inotifywait
de inotify-tools
é o que você precisa (para olhar pelo menos). Uma linha como essa fará o mesmo truque que seu script pretende:
inotifywait -e create --timeout 240 "${some_path}/file.txt" && { cleanup_function; exit ; }
com a diferença inotifywait
funciona de maneira baseada em eventos, portanto, não é necessário fazer pesquisas ou dormir.