After countless hours of editing and fixing bugs in your C programs, you're finally ready to go home. It's past midnight. You're tired, but happy to be delivering your project on time. It was a close call, but you made it.

Of course, let's clean the old .o files and do a final make, just to make sure the Makefile is fine:

/usr/project/src$ rm * .o
/usr/project/src$ rm: cannot remove `.o': No such file or directory
/usr/project/src$ ls -l
total 0
/usr/project/src$
Arrrrrrggggghhhhhh!!!.... An agonizing scream is heard in the night...

Note to non-Unix readers

If you don't know Unix, note that there's a space in the command "rm * .o", which should be "rm *.o" to remove all the object files in the current directory. With the space, the command will delete EVERYTHING (including your beloved C source code) and then try to erase a file named .o that does not exist. This is a very common mistake that people tend to do when they're very tired.