I’m working on a some materials for a class wherein I’ll be teaching some young, wide-eyed Windows nerds about Linux and we’re including a section we’re calling “foot guns”. Basically it’s ways you might shoot yourself in the foot while meddling with your newfound Linux powers.
I’ve got the usual forgetting the .
in lines like this:
$ rm -rf ./bin
As well as a bunch of other fun stories like that one time I mounted my Linux home folder into my Windows machine, forgot I did that, then deleted a parent folder.
You know, the war stories.
Tell me yours. I wanna share your mistakes so that they can learn from them.
Fun (?) side note: somehow, my entire ${HOME}/projects
folder has been deleted like… just now, and I have no idea how it happened. I may have a terrible new story to add if I figure it out.
Ran rm -rf after copying filepath with a space. The directory up to the space did exist. Fortunately so did a backup.
Cleaned a secondary drive mounted at the same point without noticing I was on the wrong SSH terminal tab, at least twice.
Whoever decided that spaces would be allowed in filenames deserves whatever level of hell awaits them.
Spaces are fine in filenames. Just always always always quote your paths and/or variables…
Sounds great in theory, but when you are trying to use awk to print out commands that might have something like printf and have to start escaping quotes, it gets really messy really quick. I have run into situations like this more than I care to as I like writing commands that will write out other commands. Spaces in filenames also mess with things like sed or sort where you want a specific column. Sorry, but in my opinion using the same character that was previously determined to be a delimiter is just a bad idea.