$ echo \#!/usr/bin/python > k $ chmod +x k $ ./k bash: ./k: cannot execute: required file not found
Bash should really mention what file it is talking about. $ echo 'x:k; ./$<' > Makefile $ make ./k make: ./k: No such file or directory make: *** [Makefile:1: x] Error 127 $ ls ./k ./k Make is worse. Can't make more confusing messages than that one. Yes, $ ls /usr/bin/python* /usr/bin/python3 /usr/bin/python3.11 but that's not the point.