Is it true? You can’t name a file with these terms?

A couple of weeks ago I ran into an article on HowToGeek. This article claimed that there are a bunch of words you can’t use in file names in Windows.

Try it yourself – I did. Try naming any file “aux.” You’ll see a message like the original author did:

The article goes on to explain why

Silly programmers…

I will tell you that programming in the 1970s was like the wild, wild west. I wasn’t old enough to program computers myself for a living but I was around a lot of people who did. If you think today’s crazed coders in their coddled Silicon Valley hammocks are weird, you should have seen these guys. I say “guys” because it was the 1970s and it was a different time.

In addition to being a bunch of certifiable weirdos, there was a lot of alternative stuff going on. Laws were different and there was a lot of experimentation going on. That was good, because there was a lot of really innovative thinking. It also meant that maybe people didn’t think ahead so much.

The 1970s was a time that you didn’t expect the decisions you made to have lasting consequences, at least in the world of computers. After all, when the 1970s started computers looked like this:

while by the end of the decade they were 1,000 times more powerful and looked like this:

With all that innovation, why would you think that anything you did in 1975 would still be a problem in 2018? I totally get that. Only thing is, they were wrong.

The legacy of bad decisions

Most folks remember the biggest and baddest of all bad decisions made by computer programmers in the 1970s. Remember that an average computer in 1975 could store about 32,000 numbers. That’s it. Today’s total storage for a computer is about 1,000,000,000,000 numbers. When you had 32,000 numbers for everything you wanted, you needed to make them count. So why would you store the whole, 4-number date when you could just store the last two numbers? Insyead of saying “1975” you said “75” and everyone knew what you were talking about. What could go wrong?

Of course we all know what could have happened on January 1, 2000. The famous “Y2K bug” wasn’t a world-ender, but that’s mostly because smart programmers had been working for several years to make sure it wasn’t. The funny thing is that a lot of the people hired to solve the problem were the same people who caused it.

And here, we see another bad decision. In the 1970s a programmer needed a reliable way to send information to an external device. They didn’t have a lot of tools but every computer operating system had one that did work. In most of them it was called COPY.

Why you can’t use certain terms

In the 1970s, CP/M, which was the predecessor to DOS (which then begat Windows) used a clever workaround to help you print or display information. You could pretend you were copying that information to an imaginary file. Whatever you copied to that imaginary file would go to a physical device. Let me explain more.

Let’s say you wanted to print something. The way you would do that would be to “copy” that thing to a “file” called “LPT1.” LPT stood for “line printing terminal” which was this giant printery thing. When you copied a file to a place called “LPT1” the computer knew to send it out to the printer. If worked, but only as long as you didn’t have an actual file called “LPT1” because that would have been mass hysteria. So CP/M didn’t let you do that.

So, there were a list of names you couldn’t use for files. Apparently this is that list:

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9

and the funny thing is that list is still part of Windows today. You can’t have files with those names. You also can’t have files with * or / in them for basically the same reason because some primitive version of something left over from the disco era needs those symbols.

Mac users, you’re not off the hook

While Macs do actually let you use most of those terms in file names, you can’t switch files between Macs and PCs if you do that. Also, Macs use a direct descendent of the Unix operating system from the 1960s which has a lot of the same reserved names and a lot more.

Is this really something to worry about?

I think we all agree there are a lot more pressing problems in our world than the fact that you can’t name a file COM6 if you want to. Still, it’s interesting to think that this one small hack, which seemed so small almost fifty years ago, is still hidden in Windows and it’s still occasionally rising up to cause problems.