43 Folders

Back to Work

Merlin’s weekly podcast with Dan Benjamin. We talk about creativity, independence, and making things you love.

Join us via RSS, iTunes, or at 5by5.tv.

”What’s 43 Folders?”
43Folders.com is Merlin Mann’s website about finding the time and attention to do your best creative work.

Vox Populi: Best practices for file naming

If it wasn't apparent from my pathetic cry for help the other day, even I -- one of your more theoretically productive persons in North America -- struggle with what to call things.

Tags, files, and -- dear Lord -- the innumerable assets associated with making web sites, graphics, audio, and video projects; it's all a hopeless jumble unless you have some kind of mature system in place for what you call your stuff and its various iterations. Of course, if you're like me -- and I hope that you are not -- you still have lots of things on your desktop with names like "thing-2 finalFinal! v3 (with new changes) 05b.psd".

For prior art, I still treasure this Jurassic thread on What Do I Know where people share their thoughts on this age-old problem, but, frankly I haven't seen many good resources out there on best practices for naming.

Anyhow, during a recent MacBreak shoot, I noticed that Alex and his team seem to have a pretty fly system for naming the video files that eventually get turned into their big-time IPTV shows. Thus, I turned to Pixel Corps' Research Division Lead, Ben Durbin (co-star of Phone Guy #5) for insight and sane help. And, brother, did he ever give it to me (see below the cut for Ben's detailed awesomeness).

But, just so I don't lose you, do give me your best tips in comments: What are your favorite current conventions for naming files? How does your team show iterations and versions? Do you rely more on Folder organization than file names in your work? How have Spotlight, Quicksilver, and the like changed the way you think about this stuff?

Ben shares how Pixel Corps does it, video style:

We're still settling into best practices that are shared amongst all the teams, but here are some themes:

File names are a set of fields separated by underscores. We share files on linux servers, so while manageable, we consider spaces in filenames to be lowercase b bad.

If it's an established or long-term project, we try to keep the codes for the various fields to three letters. This allows for more fields without having the file names get too long.

If it's not an established project, we favor readability (longer field names) and consistency. Even if your field data are arbitrarily chosen, as long as you're naming things consistently, you can always use batch renaming to convert a given field into a code later.

When possible, the fields are arranged left to right from general to specific.

Files that may have iterations get a three-digit, padded iteration number as their final field.

Even when we use folder structures with multiple subfolders, the project code fields stays as a prefix of all files, so that if files get misplaced, they're still easily findable (example: all post files for a MacBreak episode will start with "mbk_eps_episodeNumber_" regardless of where they sit in the folder structure).


As you've probably noticed, the problem with file names in general is that they only give you a single "view" and aren't applicable to other ways in which you might want to see/sort the files in other contexts. Advanced users can get all grep-daddy with it, but they're in the minority. At best, file naming structures are a "good enough" solution that works well most of the time if you don't have a more robust metadata system in place.

The problem with metadata systems, of course is that they tend to either be proprietary or only applicable to certain file types. Are we going to use annotations on all of our Quicktime movies? Create some custom xml format that gets parsed by a proprietary app? Structured Spotlight comments? The check-in comments of a versioning system like Subversion? The lack of a good, widely-accepted metadata framework that is spoken by all OSes and/or that can be embedded into most file types lead many people to resort to file naming structures and leave it at that.

Dang. Thanks for that, Ben!

To repeat:

What are your favorite current conventions for naming files? How does your team show iterations and versions? Do you rely more on Folder organization than file names in your work? How have Spotlight, Quicksilver, and the like changed the way you think about this stuff?

nex's picture

here's a tip that will...

here's a tip that will instantly make you more productive: don't spend much time on trying to come up with the perfect file-name. now that we finally have fast desktop search, such as spotlight, there isn't much to naming files. if you don't want to read through this lengthy comment, here's the essence in a nutshell: use a system that will work with your lazyness, in spite of your lazyness, something that doesn't rely on you forcing yourself to play by tedous rules.

your main goals are that you want to find the one file you need quickly, and that you want to be able to handle groups of files efficiently. i.e. it's good if you can quickly find that one folder that holds the 20 files you need, but you still have a problem if there are 1000 other files in the same folder and the only way to select the 20 you need is to hand-pick them. thus, you need such devices as tagging and grouping. folder organization can help a lot with that, especially with grouping. but if the files are, say, photos, and you use, say, iPhoto to manage them, there's absolutely no need to handle tagging and grouping at the file system level. there's nothing wrong with a folder holding 5000 files that all have names like 'DSCN5867.JPG'. OTOH, if you're saving a web page with an interview with richard dawkins, and you know you'll want to use that file when you're writing a book about religion in five years (when you won't have the file on your computer any longer, but on some backup medium, so spotlight might not be able to see into it, but still know about its existence), it's a good idea to call the file religion-dawkins-interview-god-delusion-fundamentalism.html. you might just as well call the file salon-interview-richard-dawkins-atheism-evolution-war.html. now that's the part that doesn't matter much, that you don't want to spend much time thinking about.

thus my second tip is: don't even try to come up with a system that covers all eventualities. your OS just isn't there yet. use a proper versioning system for files that benefit from it, but don't bog it down by throwing your whole MP3 collection in there as well. make sure your backup system keeps useful data like a file's creation date or date of last edit intact. make sure MP3s carry the proper meta-data inside, photos the proper EXIF data, etc.

BUT, and this is my third and last tip regarding file naming: don't concoct a complicated system that requires you to come up with file names according to some strict rules, such as topic-title-location-category-subcategory-date-time.extension. because the day will come, probably rather sooner than later, when you get sloppy with it. the day will come when you only have so much time to migrate to a new system, and you won't be able to go through those folders called "unsorted", "unsorted2", "unsorted3" and "miscellaneous", which you created when you didn't have the time to name all those files properly just now.

personally, i have a folder structure for files that i created/edited myself, and in an ideal world i would back that up daily. another folder structure is for files that came from somewhere else, and i back that up monthly (approximately). the reasoning behind this division is this: if i lose an e-mail i wrote a week ago, it's gone. but if i lose NiftyToolX.app that i downloaded a week ago, i can download it again; all i need is my browser history with the download link, and the configuration file with my personal preferences, and those are files that i created/edited myself (not directly, but it's still data no one else has, that's the important point here), thus they are in my daily backup.

within these folder structures, i do what i call successive refinement by letting files trickle down the hierarchy. if i'm in a hurry and don't want to take the time, just now, to decide whether NiftyToolX.app has to go in applications/graphics/pixel, or applications/graphics/vector, or applications/tool/display, i can at least confidently throw it into the 'applications' folder, so at least it won't sit on my desktop and clutter that up. next time when i look at that applications folder and am not in a hurry, i can move it deeper into the structure. but of course a hierarchial system has its limits, it doesn't handle items that belong in multiple categories. this is just to make sure that when i'm looking for the driver for my graphics tablet, while i won't be sure whether it's on the "drivers" CD-R or the "OS" CD-R, i can at least rule out the "movies" and "games" media and don't have to search them as well.

now, if spotlight was only able to search media that aren't currently mounted. iPhoto, iTunes, etc. suffer the same illness, as does time machine. the idea that all my data should be mounted on my puny iBook is just plain stupid. i really want to index all of that ... suggestions, anyone?




An Oblique Strategy:
Honor thy error as a hidden intention


Subscribe with Google Reader

Subscribe on Netvibes

Add to Technorati Favorites

Subscribe on Pageflakes

Add RSS feed

The Podcast Feed


Merlin used to crank. He’s not cranking any more.

This is an essay about family, priorities, and Shakey’s Pizza, and it’s probably the best thing he’s written. »

Scared Shitless

Merlin’s scared. You’re scared. Everybody is scared.

This is the video of Merlin’s keynote at Webstock 2011. The one where he cried. You should watch it. »