This post chronicles a Unix system administrator's long struggle to organize their digital files, documenting every failed approach—from custom categories to the Dewey Decimal System—before landing on a simple date-based directory structure combined with powerful search tools. The key insight: stop trying to categorize everything and instead organize by date, then search.
The author writes from a Unix/Linux perspective, though Mac users should be able to follow along. For those unfamiliar with Unix, a few quick translations: the home directory (~) is where you keep most of your working files, the cat command displays a file on your screen, and folder names are separated by / instead of \.
The core problem was simple: the filesystem was a mess. Finding anything required grepping (searching) all over the place, which only worked about half the time. The other half, you'd either get no results or accidentally match a compiled binary and completely wreck your terminal display. The author tried several organizational schemes, and all of them failed.
About six different categorization schemes were attempted, inspired by IBM and Red Hat distribution structures. These included folders like Admin, Databases, Development, Documentation, Editors, Graphics, Network, Security, Web, and the dreaded Misc.
The problem? Figuring out where things actually belong. For example, learning to use tcpdump (a network traffic analysis tool) — should notes go in Networks because it examines network traffic? In Admin because only sysadmins use it? Or in Documentation because you're storing instructions, not the software itself? You can guess where most things ended up: the Misc folder became a black hole. 🕳️
Inspired by a well-organized friend who had a projects directory, the author tried the same approach. But new problems quickly emerged: some projects had duplicate or very similar names, organizing by the requester's name was awkward, and it wasn't clear whether a two-minute task even counted as a "project." Same old categorization headaches, plus brand new ones.
During what the author calls their "to hell with it" phase, everything just went into the home directory. The result? Over 1,000 files in one folder. You can imagine how well that worked out. 😅
Putting text files in one area, PDFs in another, and web pages in a third just resulted in a bunch of strangely-named files with nothing in common, in no particular order. The only upside was being able to grep through text files without accidentally matching a PDF and getting gibberish on screen.
Another colleague stored most of their daily work as email, using mail folders for each project and navigating with a mail reader. Sounded cool — until there were 658 email folders and the same old question arose: did that Solaris security notice go in the security folder or the solaris folder?
All of these methods shared a fatal flaw:
putting a bunch of semi-structured information somewhere and expecting it to magically organize itself. Trying to impose additional order on stuff like this is a waste of time when you consider how much new semi-structured information we send and receive every day.
A few approaches almost worked but weren't quite right for the author's daily sysadmin work.
The author discovered CyberDewey by David Mundie (links now dead) and even bought a copy of the Abridged Dewey Decimal Catalog. The system is actually quite clever for organizing files — all the hard categorization work has already been done for you.
For instance, filing an article on "hurricane relief" involves flipping to the Relative Index, looking up "hurricanes" (551.55), following cross-references to "Disasters" (904), and choosing the most appropriate category number: 904 for a Katrina survivor interview, 353.9 for a piece about FEMA response, and so on.
Unfortunately, the abridged version was too general for a sysadmin's technical work, and the full WebDewey cost $275. Close, but no cigar.
The Open Directory Project (DMOZ) had a well-organized, free, digital category list that could be turned into a directory tree. The author shows an example tree with folders like Code/C/Libraries, Languages/Perl, OS/Unix/Linux, Security/Log-Analysis, etc.
This works for a setup with a small number of files and clean topic boundaries, but didn't scale for daily work.
Canada created a records classification system called ARCS — a block numeric system based on function and subject. Each grouping gets a unique three- or four-digit number. The documentation is thorough and well-structured, but it's designed more for administrative work than technical sysadmin tasks.
The author quotes South Park to introduce this section:
"But minister, it isn't like this film is the first troublesome thing to come out of Canada. Let us not forget Bryan Adams."
"No, no. The Canadian government has apologized for Bryan Adams on several occasions."
Several trouble-ticket systems were evaluated — Bugzilla, BATTS, Request-Tracker — along with Joel Spolsky's excellent paper Painless Bug Tracking. These are great for helpdesk collaboration but don't really solve the problem of organizing day-to-day personal information.
The most useful idea from Getting Things Done was the complete brain-dump — getting everything into a trusted location. The author's sysadmin work doesn't change every day, but it's much easier to track things by date rather than by subject. People tend to remember things in time-order, so the author stopped fighting this instinct:
I finally stopped trying to change the way I work to fit some hierarchy. Instead, I made a directory structure on the machine to match my work habits.
The solution is a top-level directory called notebook with subdirectories in the form yyyy/mmdd, so every day gets its own folder:
/dev/random under SolarisMaildir, a good awk tutorial, a RedHat iptables article, and some sudo alternativesWhen someone asks "Remember that thing we broke last Friday?" — you just check the calendar, navigate to that date's folder, and find the file. It's beautifully simple.
The most noticeable improvement was finally being able to find things by date. What convinced the author this was the right approach: every new problem that came up had a solution that was consistent and doable, usually taking less than 20 minutes to implement.
About 95% of the time, you're dealing with yesterday, today, and the coming week. The solution: symbolic links in the home directory pointing to the right notebook folders. On February 6th, 2020, for example, ~/today points to notebook/2020/0206, ~/monday points to notebook/2020/0210, and so on.
This means typing cd ~/monday from anywhere in the filesystem takes you straight to next Monday's folder. With Z-shell's autocd option, you can even just type monday and go. The symlinks are regenerated automatically every night by a cron job.
Remind is a powerful calendar/reminder program for Linux and Unix. The author uses it in several clever ways:
Notebook directory creation — A script runs just after midnight every day that creates directories for today and tomorrow, sets up Maildir folders, generates all the day-of-week symlinks, and pre-creates a full year's worth of directories in advance (using Remind to handle leap years correctly).
Daily agendas — A file called agenda in today's folder holds todo items. Running the a command displays today's reminders:
me% echo 'REM MSG Finish bzip upgrade' > ~/today/agenda
me% a
Reminders for Thursday, 6th February, 2020 (today):
* Finish bzip upgrade
Timed popup reminders — For a 2pm meeting in room 205, you just create a file:
me% echo REM MSG Meeting in 205 > ~/today/1355.rem
A small program called showcal runs every minute, looks for hhmm.rem files, and triggers screen popups via zenity. For recurring reminders, put them in ~/.calendar/ instead — like a weekly trash night reminder at 6:45pm every Tuesday.
The system supports several natural patterns for recording work:
LOG in today's folder holds brief notes. These can be joined at month's end for a summary.jane-doe-login for Jane's persistent login problem.charleston-webpage. The locate command finds related files across the entire notebook history.today to see what's waiting.The final piece of wisdom: instead of agonizing over categories, break files up by how often they're updated and set up appropriate search tools:
$HOME/notebookWhile grep works for quick searches through a few files, it doesn't scale. For anything larger, the author recommends tools like Recoll or Xapian that can index and search more intelligently.
The journey from 1,000+ files dumped in a home directory to a clean, date-based notebook system is a testament to a simple truth: work with your brain, not against it. Humans remember things chronologically, so organizing files by date — and then relying on search for everything else — turns out to be far more effective than any elaborate categorization scheme. The combination of a yyyy/mmdd directory structure, symbolic links for quick navigation, Remind for scheduling, and good search tools created a system that's been working for over 20 years. Sometimes the best organizational system isn't the most sophisticated one — it's the one that matches how you actually think. 🧠
Get instant summaries with Harvest