Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do you organise your files and folders?
181 points by throwawayt856 36 days ago | hide | past | favorite | 173 comments
By project, by tool? What do you do with pdfs and reference stuff, surely not Dewey Decimal?



Save files to my desktop. When it gets too messy, I throw everything in a folder called "Cleanup". Repeat. When it gets messy again, I rename the Cleanup folder to Cleanup_<date>, then throw that and everything else in a new folder called "Cleanup".

I'm about 7 deep at the moment.


My approach is very similar, except the folder is called "Inception".

Sometimes I like to walk the Inception tree and reminisce.

I don't know when or how it became a tree, but over the years a few "Inception_", "Inception2", and "zzzInception"s managed to sneak in.


I was discussing browser tabs with others.

I usually middle click a bunch of articles on HN, then go read all the tabs until there are none left. I close by browser often.

But one of my friends, he keeps every tab forever. He always has everything at his fingertips, but a reboot or power loss is a crisis.

So I discovered talking to other that MANY do that too. hundreds of tabs is not as uncommon as you would imagine.

And so is this desktop piles-o-files pattern.

I wonder if the answer to all this is to adapt to human nature. Allow hundreds of browser tabs. Allow everything to be thrown on the Desktop.

and help people cope with the madness somehow.

(oh and the Desktop method is my method too, except periodically OLD and OLD/OLD and OLD/OLD2 get migrated from my SSD Desktop to my hard disk old-desktop)


Many browser tabs are useful because Firefox allows for searching their titles using the address bar.

Similarly, keeping all emails in the Inbox starts looking useful once you have a nice to use filtering client.

I suppose holding a flat file structure will start making sense when a good filesystem-wide metadata search becomes available.

Sometimes I wish WinFS didn't die. That future could have meant the end of crappy ad-hoc directory structures.


Almost a decade ago I used to do this too. When the current browser window got too messy and I wanted to clean up I would just drag the window on the second screen and start a new browser on the primary screen.

Browser updates and accidental reboots (this was Linux and I accidentally typed “reboot” on the local machine instead of the remote server) were fun.

Nowadays I just don’t bother. If something is truly valuable or needs to be addressed I will bookmark it otherwise I let it go.


My Windows desktop will routinely be using over 20GB of RAM with just Firefox with a few tabs, not even a dozen, Discord, and Teams running. It's boggling to me that people can run hundreds of tabs, even though I have definitely seen it. Watching them fumble around trying to find the right tab is also hilarious. It's like a roulette game.


Also, having many different browser windows spread out over 10+ desktops makes it even harder to find the right tab among those 100+

Can make my blood start boiling


everything in my desktop and downloads dir is automatically deleted after 30 days. So either it's properly organized because it's needed long term or goes away.


Ohh, that's a good idea. I roughly do the same, but maybe the thought that something important might be lost would cause me to be more thoughtful about organization on the front end rather than sorting through it after the fact.


This except instead of the desktop I just keep everything in the AutoRecover pane of Microsoft Office applications. My cleanup strategy: every so often when I'm feeling ballsy I say Yes when it asks me if I want to clear it out.

I realize this is almost as bad as the people who keep stuff in the recycle bin but I'm too busy to care. :-)


I have hard drives on shelves that are basically this. One thing I have been doing to reduce this is to have one folder that is for things like this and everything else is considered ephemeral. It sort of helps my to classify things as definitely don't want to lose (usually cloud to start so non issue) vs if I lost this it would be annoying, but not the end of the world.

I think in many ways I am a digital hoarder, files, bookmarks, HN up votes... the ephemeral strategy is so I have to actively decide if this is something that can't be lost, or if not, it must be ephemerally classified. These are my only two choices now


Sounds suspiciously like my /home/<user>/tmp/ directory.

Every few years, throw a wobbly and delete a few layers.


That's exactly it, I just use it as a visual working directory for pdfs, memes, text files w/ credentials, you know...

/s


Yup, I have a similar (non-)system with a folder called "bucket". It gets filled up, named to <year+month>_bucket. I have a few years worth of buckets.

Occasionally I go through them and move relevant/valuable files into their respective category folders like "books". But, I try to do that while the bucket is fresh/small, since they are by nature a mess of information.


Almost the same, unless I don't put it on desktop but documents. From the algorithmic perspective, it's really efficient and it's like a linked list:

Read and write heavy on the head (Desktop/documents).

Keep the head lean from time to time.

Occasionally read from the tail, the efficiency is acceptable. It's like archeology, the more recent, the easier to reach.


People keep things they think they'll need and often end up not needing them. I do something similar and then blindly delete things because it must not be important if it's still in a "Misc" directory.


I have a simple batch script moving files to the necessary folder. Jpg,png,gif's will be gone to images (or docs/images) etc.


I see you have a very structured approach. I usually have to look for the stuff I need in Desktop\Stuff\Backup\oldStuff\old\


This makes me very uncomfortable :).


Only seven? Rookie. I probably have 15 to 20 folders that somewhat serve that purpose :P


Mood, right now.


I think this speaks for most of us...

https://xkcd.com/1360/


Sigh, I'm precluded from that - I've lost most of my old stuff to various HD failures and cdrom decay. I remember having a bunch of emails from my teenager years that became effectively unreadable when the proprietary client I used was abandoned (I realized too late). Sad times.


same.


I use a system I created called: Shelf, Desktop, Cabinet.

I use the 'shelf' folder to store all the files I use and reuse (usually, transform) at work. E.g. templates, stock photos, contracts, pieces of code etc.

My actual projects are sub-folders inside the 'desktop' folder. Metaphorically speaking, they are 'sitting on the desktop'. Folders are named like this: 'client_name - project_name'. Whereas 'client' can be anything like: 'me - learning Vue.js'

The 'cabinet' folder files completed projects should be no longer on my 'desktop'. I just move them into there, where they can be easily sorted alphabetically. But before doing that, I take elements that could be reused someday in similar projects, copy them into the 'shelf' folder and give them a generic name that I can easily find through a search.

edit: clarity (I guess...)


Similar to mine too. Though my 'Desktop' is my Google Drive folder, always sync to cloud. My real desktop though, is temporary place for pile of files of current working project of that day. I clean up this real desktop at the end of the day, put the files into their rightful place or delete it, just some old habit.

I have some kind of 'shelf' too, but your idea about taking element from soon-to-archive project and put it in a shelf is what I overlook. I'll give it a try!


It can be hard to separate things in the beginning because if you ask yourself: "What is important from this work that should be in shelf?", your answer would tend to be "everything". So, instead, you should be asking yourself "which elements can I be reusing in future work?" regardless of their importance.


I try to make sure every name is clever enough to make me hate myself but also appreciate my wit when I try to find it in the future. Versioning is achieved by banging on the keyboard when saving the file, it's easy to tell how recent something is by the length of the 'asdljkhaoi' appended to the filename. Every once in a while I throw everything into a folder called "backup" and start fresh. I believe they go 8 deep now.


This is my favorite


Either I'm just lazy, or all file management/organization converges on this method. Probably I'm just lazy.


> Versioning is achieved by banging on the keyboard

Thank you for this, it's hilarious and yet oddly logical (use of entropy).


Photos: In folders named "YYYY/MM.N Descriptive event title" like "2019/05.1 Birdwalk with Stephanie". This really helps me find things later.

Technical library: Academic Topic/subtopic/ then pdf title

Music: I use beets now, which imports and organizes everything

Household: Accounts folder, Mortgage folder, Appliances folder with subfolders for each appliance containing manuals, photos, and maintenance info.

Systems folder: subfolders for various IT systems and lots of related data in them

Projects folder: topic/project name mostly, sometimes with subtopics

Documents: YYYY/topic for things that I can find by year later, like taxes, licenses. Also used as longterm archive for projects.

Software/repo for various repos that don't fit in other categories (not too happy with this)

/opt/venvs for lots of python virtual environments.

Pretty much everything is in a mirrored ZFS pool with auto-snapshots (for rewinding in the event of accidental deletions) and occasionally dumped to external drives put in fireproof/floodproof safe (and taken offsite).


Are your venvs themselves the git repo too? Sounds like they're not, because you have a different project folder.

What's your rationale for now putting the venv inside the project and ignoring it? À la node_modules.

I've shifted to this after years of your method and like it. I do hate .gitignore expanding arbitrarily. But that's life.


I also put virtualenvs in a single centralized location (~/.virtualenvs), and manage their contents via Poetry.

The main reason is that I sync my Git projects via Tresorit (“encrypted Dropbox”). This lets me switch computers without committing and pushing code that is not “ready”; makes it easier to sync all projects I work on to my backup server; and lets me copy around project files that I don’t want to commit (e.g. messy WIP and TODO notes).

This doesn’t work well with virtualenvs inside a repo, because (i) the virtualenvs are not portable, and (ii) syncing a virtualenv is slow. Instead, I sync a Poetry lock file, which makes it trivial to recreate the “same” virtualenv on other machines.


Late reply: I used to do this. These days, I treat my projects like cattle, not pets.[1]

Using nix I made everything reproducible. So given a project name and branch name, everything is checked out (shallow checkout for big projects) and setup for me. If I'm working on another machine, just run "launch org/project <branch>" and profit.

There are edge cases: if I forget to push, I do remote in and do that. When I'm done with a branch, I make it a habit to purge that "instance" of the project. But first I have git go through the project and its submodules (if any) and ensure everything has been pushed and the repo not modified.

Note: my projects are database backed and have state etc. All of that is part of the setup script, per project. If your database is in a customized-state for development for a super specific scenario, then you're probably not automatically testing it and that's a code smell to me.

[1] https://medium.com/@Joachim8675309/devops-concepts-pets-vs-c...


They are not. The main reason is that I often use a venv in a few projects. This is just laziness really, and I don't think it's any better than what you're recommending.


(not op) One minor reason I'm considering stopping putting virtual envs inside the project is that not all tools I use support ignore files, and it's one extra thing to remember to ignore in each individual project. Putting venv/ in my .gitignore is one thing, but making sure grep, ag, tree, fzf, etc. all ignore it is an additional step. Granted, I believe some of those tools do respect .gitignore.

I just don't see a benefit to having the virtualenv inside the project directory.


Recommend MM.0N, or better yet, YYYY/YYYY-MM-NN.

Zero padding months means they will sort properly, and not jan oct nov dec feb

Putting the year in the sub folder means they can be moved around/back/out (or zipped) without losing important metadata.


YYYY-MM-NN, or ISO-8601, is objectively the best date format[1].

1. https://xkcd.com/1179/


>Photos: In folders named "YYYY/MM.N Descriptive event title" like "2019/05.1 Birdwalk with Stephanie". This really helps me find things later.

To find things later I use the tags feature of Shotwell


First thing to do, is to create a new "homedir" inside the OS-provided homedir. I want my homedir to be immediately backup-able, and unfortunately most OSs spam the system homedir with various nonsense, e.g. applications (on Mac, Chrome installs (or used to) in `~/.ApplicationData`, on Linux, there's various package managers' binary caches, ...). I used to name this `home` but next time I'll name it `my`, less confusing.

Then, inside of that dir, I have several other folders - `personal` is where I keep my "personal" info (tax returns, copies of official documents, CV, bank statements, ...), `code` is where I keep my projects (usually I then have a `code/archive` as well for things I'm not working on any more), `music`, `photos`, `movies` are obvious, and `archive` for things like ebooks, saved websites, webinar videos, ...

also two folders called `inbox` (for new, yet unsorted items) and `tmp` (for things that can be deleted) - seemed like good ideas but I don't really use those any more... usually my OS-provided `Downloads` folder serves both these functions...


> First thing to do, is to create a new "homedir" inside the OS-provided homedir. I want my homedir to be immediately backup-able, and unfortunately most OSs spam the system homedir with various nonsense, e.g. applications (on Mac, Chrome installs (or used to) in `~/.ApplicationData`, on Linux, there's various package managers' binary caches, ...). I used to name this `home` but next time I'll name it `my`, less confusing.

What's really bullshit about this is the mixing of crap you wouldn't want to back up and actual user-relevant documents and config. The lowest-friction use of a bunch of programs will end up putting config you might want to keep, or documents, in your actual '~/' (say, "~/Documents"), but as you point out tons of stuff that you don't want ends up in there, too. At this point we almost need two "home" environment variables on unixy systems (and Windows has the same problem, of course). Another issue that's mostly Linux-specific (maybe the BSDs, too?) is the way someone who's not even that into sysadmin junk may end up with a few files in '/etc' that they'd like to back up, when really those aren't intended for use by any other users on the system (of which there may well be no other human ones) and could go in the home dir or somewhere else segregated from package-manager-sprayed, untouched-by-the-user noise.


One IDE I used likes to dump hundreds of megabytes of binary crud in there, with names suggesting it's an actual copy of the IDE rather than anything useful. Run two or three configurations of the IDE and goodbye at least a gigabyte.

I dare not even look at what the browsers are doing.


Yes, I do not want gigabytes of cache files in my homedir.


There’s stuff in the normal homedir you want to back up.

Better to maintain an exclude list:

https://git.eeqj.de/sneak/hacks/src/branch/master/osxbackup/...

https://git.eeqj.de/sneak/hacks/src/branch/master/osxbackup/...


Has it ever occurred to you that keeping your stuff backed up should be easier than it is?


This is also my approach. I create one dir called myuserfiles and one dir called myuserdotfiles. The main home is used as a temp that gets sorted and docs/pics/videos get put in the correct dirs every few weeks.

One of the things I do that others might find interesting is that anything not being worked on in my gitprojs dir is sent back to the appropriate ~/myfiles/progs/$language dir. So all my ansible stuff is in one place, all my bash scripts are in one place, etc.

Also while I am an emacs person and I like dired, I have converted to ranger as my file manager and it is quite awesome.


I started doing the above at a job where IT warned me that they could and would nuke my hard drive 'if needed' so anything not on the backed up network drive could just up and go away. It's nice because you can just copy the whole thing over to another computer.


Thanks for sharing this, I'm kind of shocked I haven't encountered it before. Definitely adopting it.


At this point, I've decided 75%+ of stuff is transitory and doesn't deserve the time to be filed into a hierarchical local file system, so I just leave it all in Downloads on OS X. Github, Overleaf, Google Docs, and email has all the critical stuff. And of course I have full backups for years. This horrifies some people, but has worked well for me for about 5 years.


I could really use not a full download-to dialog on every save in my browser, but just a prompt for a very small set of download locations I've defined, possibly filtered by extension (.jpg -> 'photos_to_sort' or 'memes' or 'temp_junk' as my options)



Try using Hazel (macOS-only) to auto-file stuff for you based on whatever naming conventions or file extensions you want. It’s amazing.


Similar strategy: I treat my desktop as a temporary workspace. Anything transient goes there, and a cron job clears out unused files automatically:

    find ~/Desktop/ -atime +3d  -maxdepth 1  \( -type d -o  -type f \) -exec trash "{}" \;
If I really need something that gets deleted, I can go to my backups.


00.INFO - Notes, references, some original sources

10.TASKS - Any work I do for a specific person that can be completed in a week

20.PROJECTS - Multiple related tasks or tasks that have transmogrified into a full-blown project

30.MEDIA - Says what it does on the tin

40.ORGANIZATIONS - Different groups I've joined

  X0.CORE - Private or important to me alone
  X1.PRIMARY - Important to me and I'm responsible for it
  X2.SECONDARY - I am responsible for some of the work but it's not important to me
  X3.GENERAL - Everything else that I still need to be aware of
  X9.ARCHIVE - Everything that I'm to afraid to delete even though it's irrelevant
So a folder/file might look like:

00.INFO/00.2019 JOURNAL/

00.INFO/00.2020 JOURNAL/

10.TASKS/11.2020 PRIMARY TASKS/20200603 JS 401(k) Rate Report.xlsx

20.PROJECTS/21.2020 PRIMARY PROJECTS/202006 FY 2020 401(k) NDT/

40.GROUPS/41.Eberron Campaign/20200531 Campaign Notes.md

I probably overthought it but it makes finding things pretty straightforward.


I'm surprised your dates are M.Y rather than Y.M. Doesn't that get confusing over time?


All of my dating is YYYYMMDD or YYYYMM. Anything that comes before the '.' (e.g. 41.Eberron Campaign) is a two digit code to describe the file, the first digit = type of document and the second digit = personal priority.

It's probably convoluted from the outside looking in, but it works for me.


I see - and of course, that it works for you is most important.

I was thrown off by "11.2020 PRIMARY TASKS", which looked like November 2020 at first glance. Now that you mention it, I see that you have a YYYYMMDD filename on that same line.


Documents/Current/ is a symlink Documents/Months/2020-06/.

Anything that survives more than a month gets promoted to Documents/Projects, with symlinks to that location from any month-directory where I work on that project.

If anything, it is an excellent way, ahem, to discover FreeBSD symlinked directory arcana. The “..” directory never seems to be what I expect it to be.

Everything is rsyncd to NAS:/tank/Backups/ which I never use except as backup space. The NAS and all its ZFS snapshots are backed up to rsync.net’s CH store, with borg, from which I have never had to restore in anguish or anger.

When I run out of space on my laptop, I log in to the NAS and move data from /tank/Backups/ to /tank/Archives/ then delete the data on my laptop. The Archives gather dust alongside the last 30 years of data that has been growing in size linearly in my mind, and exponentially in reality. I hope they may be of interest to someone one day, as my forebears papers have been to me.


While I wouldn't exactly call my own setup organized, what organization I do successfully maintain is similar. Everything has a permanent location in a structure that has very obviously been poorly tweaked over many years, and then I use symlinks for things I use more often.


>> surely not Dewey Decimal?

Close.

https://johnnydecimal.com/

Rather, I'd like to do implement this. I have my own homegrown system, with too many idiosyncrasies to share.


That is absolutely bonkers I love it. I'm not sure I have the staying power to implement it but I'd like to.


Thank you for posting this. I read it a few years ago, loved it, and then was never able to retrieve it later on.


An amusing aside: When I was in grad school, the university created a little pamphlet to help students answer the question: Should I get my own computer?

That such a question could even be asked, dates me. But one comment in the pamphlet still seems to ring true:

Don't expect the computer to organize you. If you have a messy desk, you will have a messy computer.

For me, search is how I organize my files, and yes I suffer from my lack of organization.


> Don't expect the computer to organize you. If you have a messy desk, you will have a messy computer.

Nicely put. This has been the biggest invisible wall whenever people sing praises of some particular organizational tool. It’s easy to learn the tool if one has a clear notion of “legibility” to impose on data and processes, but that organizational clarity seems to be much harder to pick up. Nobody really talks about that, and I suspect it’s also a much harder thing to communicate as it gets close to the core of one’s perspective towards knowledge and activity.

I also wonder whether there’s some tradeoff in being legibly organized, and seeing liminal possibilities.


Basically dump everything in ~/Downloads and then a couple of scripts to archive it off to ~/doc/YYYY-MM every month, then every now and then I might sort that into ~/archive/home/doc and ~/archive/work/doc.

Got a few context-specific directories; ~/src, ~/screenshots, ~/notes.

Search using Finder, find or ripgrep.

I wrote a bit more about it at https://www.garethrees.co.uk/2019/11/24/filesystem-organisat...


  On NAS with ZFS + backup on second NAS + Online Backup:
  /music/
  /picture/<picture taker (me, my wife, me and my wife, friends)>/<year>/

  On every laptop/desktop i have a project folder which is backuped through git:
  /project/

  Then i have everything else i need in a google docs and its basically:
  /docs/archive (stuff i don't need but don't wanna delete, old letters, old bills)
  /docs/ebook
  /docs/finance
  /docs/flat
  /docs/company/<companies i have worked for>
  /docs/resume

It reflects more or less what i have in real paper folders. I'm still rethinking if i can go full digital but its not really urgent.

Passwords & Secerts are at lastpass, backuped on docs with very strong password. That change, made my life a lot easier :)


shell darwinism. I toss files onto the Desktop, and have a cron that runs every night, deleting files older than 30 days. This knife-in-the-steering-wheel approach leaves me constantly scrambling to make sure my files are all properly curated into a more suitable hierarchy, of which is not interesting.


> knife-in-the-steering-wheel

I wasn’t familiar with this concept so I searched around. Is it this? https://en.m.wikipedia.org/wiki/Gordon_Tullock#Tullock's_spi...


That's spectacular. And a great project name too.


`ag -g 'some-piece-of-the-name-that-seems-kind-of-likely'` [0]

[0] https://github.com/ggreer/the_silver_searcher


fzf piped to xargs. Fzf is a fuzzy interactive string search, by default searches path names below current directory. Allows selecting multiple entries with --multi


I never realized how crucial fzf was to my workflow til a fish shell update broke it and I was paralyzed til I got it fixed


You should try ripgrep


Why? It has pretty much the same functionality as ag and comparable speed.


It's about 5x faster given their benchmarks. Also it's written in Rust ;)


~/tmp - desktop and downloads, mounted as tmpfs.

~/usr/text - pdfs and text files with name format author-title, no hierarchy

~/usr/projects - each project, not sorted by language

~/etc - $XDG_CONFIG_HOME

~/etc/bin - shell scripts

~/bin - programs locally installed

~/src - source code repos, built into ~/bin

~/prog - cache and data

I use CVS to store and version everything, and various environment variable, wrapper script, and alias hacks to move as many dotfiles out the way.


    ~/dev        # git repositories, unfiled.
    ~/Downloads  # ... everything else
In yesteryear I used to do a bit of local photo management (but now that's done in google photos for the most part) and a bit of local music management (but that's spotify/youtube nowadays).

I would organize things differently but I've always been unsatisfied with having to reify some arbitrary subset of metadata about each file into a directory structure. It might seem reasonable to have photos in directories by YYYY/MM/DD but sometimes I want all photos that were taken in a particular location or that have a certain person in them.

I have had no fewer than four aborted attempts to start using camlistore^W perkeep. For some reason it just doesn't stick and I end up going back to the "... everything else" directory. The bit that always gets me is the interface between the object storage world and the posix world (where all my apps / editors live).

Internally, google has a really generic File API that abstracts over a plethora of internal storage systems. Public examples of those storage systems include things like GFS and Chubby (though Chubby support got removed IIRC because enough people didn't understand that they shoudn't use it as a generic storage system -- imagine FUSE-mounting a zookeeper subfolder as your ~/Downloads directory)). So if you're writing internal code, you just get this interface to access "file"s in a mostly-implementation-agnostic way. I don't know how many internal projects use regular POSIX files/directories, but it's probably fewer than you'd think.

For better or for worse, the open source community will never rally around a "file" interface that isn't POSIX-ish (directories and files), at least not on the desktop. A while back I got excited about filepicker.io (apparently rebranded as filestack since the last time I looked at it), because I'd love for there to be some layer (that isn't defined by Apple/Google), pluggable / extensible, that would allow me to organize files in a way that makes sense to me.


YYYY/MM/DD or even YYYY/MM definitely tends to be too granular for photos in my experience, but I've been dumping the recent year's photos / videos into a YYYY directory every January (which takes seconds to do), and it's been great. Gives me a fresh new directory for all the new media for the year, without directory fatigue when looking for older photos. I also clear out the photos / videos on my phone at the same time for the same reason.

That said, google photos is where I go to search my photos. I'd love something self-hosted, but I don't care enough to weigh options and implement something, and I especially don't care enough to build my own.

Google's File API sounds really interesting. I personally want a tag-based filesystem that can _look_ and even have interactions like directories and files, but works like a graph. There was a great discussion about that sort of filesystem in this thread: https://news.ycombinator.com/item?id=16763235


> I'd love something self-hosted

You should try PhotoStructure. Self-hosted, runs on desktop or headless or docker, and auto organizes your photos and videos into datestamped directories using whatever pattern you want.

Disclaimer: I'm the author

https://blog.photostructure.com/introducing-photostructure/


Thank you for the recommendation. Looking at my Downloads folder, it seems I tried it out about 6 months ago, very shortly after my son arrived. I imagine that may be why I never gave it much of a chance. I look forward to revisiting it.


Neat. Ping me if you have any issues (hello@photostructure.com), please. Also: this release is coming soon: https://photostructure.com/about/v-0-8/


Thank you. Also, regardless of whether I end up using this, this looks to be an excellent and beautiful application. Well done!


git-annex. I love this tool - it allows you to have a single virtual gigantic git repository with your entire life inside it. I basically dump everything there in folders and thanks to git-annex it is still manageable.

https://git-annex.branchable.com/walkthrough/


I delete everything except photos and music once every year or so. Whatever is important, like legal stuff, I email to my wife, who is a hoarder and never deletes her emails.


By context (Development, Personal, Business, References) on my personal machines and by project/customer on the work ones.

Right now, since I've moved about in the company a bit, and still have an archive of work from my previous role, that means "My Org/Customer Deliverables/ACME/Coyote Dynamite Project" and whatnot.

All my deliverables are named "YYMMDD Thing that got done.format" inside those folders (and yes, I still version some of these manually, because they are easier to compare side-by-side).

I do that because in Spotlight it is trivial to start typing the approximate date of what you did by memory and (in the past, before macOS became hopelessly bloated) I got to any important file in less than 2 seconds.

(Today, of course, Spotlight is useless and takes up to 30s to display anything of consequence.)

Reference stuff goes into folders by topic - I usually file whitepapers and presentations separately, because I retrieve them in different contexts (so if I need to re-use something, I'll go into "Presentation Resources/Infrastructure Automation" and that sort of thing).

Most project work, however, ends up on Teams/Sharepoint/whatever the customer wants, and teamwork patterns vary _a lot_, so I'm very dependent on searching for stuff anyway.


Oh file management - my favorite topic! I spent way too much time finding a system that works.

Everything (files, PDFs, etc) that’s important goes into DEVONthink for future referencing. The app is excellent for finding files that relate and can do things like “I think this file goes into the folder ‘water bills’ based on other files in that folder. Move it?”. It’s also e2e encrypted and syncs to multiple cloud storages at once.

Everything that’s not in DEVONthink is considered temporary. I have hazel on my Mac automatically clean up old files in locations like desktop/downloads that are older than x and move it into the trash. If something is important I have to decide this early otherwise it gets thrown (but I could restore it for a while until hazel auto-cleans my trash)

Folders like Documents/, I leave as is. If apps want to write in there they can, but I don’t consider that location important. For more important app data I use iCloud and each app writes in their iCloud specific folder.

For nuggets that refuse to write anywhere else and only into a folder inside Documents, I have hazels sync feature replicate that specific folder automatically into a other location, like inside iCloud Drive.

Then if anything goes wrong I have an arq backup :)


Personal work goes into a sync folder organized by year.

References are organized by media type, then by general subject, then (usually) by author. I mark up filenames with tags so that I have some options for tracking down stuff with file search.

When I want to collect references for a project they get copied out.

What I've noticed is that the organization ought to reflect the mind, and the mind doesn't run on Internet Time. You probably aren't a professional librarian archiving the whole world's knowledge, but rather a person who is using curation to say "this is what I like" and create a quick-access space for self-exploration. If you go too general in your organizational patterns, if you archive too much or archive unseen works, you won't use it. You might as well run off to a search engine in that case. So it has to be more of a gradual-phases accumulation.

The most recent change is that I started copying more, because I'm aiming not to data-hoard and with current capacities it's hard to fill up the drive with references without falling into hoarding.


Projects go in <year>/<name>

Every year I move the currently active projects forward as I touch them. Unless it makes sense to leave them in the old year. They aren’t archived, can still be worked on, they just aren’t necessarily cluttering the current year. And I have a script (bash function) for navigating them. ‘work’ cd’s me to the current year. ‘work ——-‘ (3 dashes) goes 3 years back. ‘work 2016’ goes straight to that year.

Projects are created at the drop of a hat. Super lightweight, no need for it to be important, formal, or even mine. Cloning something from github? Goes right into the current year.

The current year is in dropbox. Everything else is not. There’s also a special directory that holds stuff that doesn’t go in the cloud.

Also have a script for labeling the current directory with tags for easy grepping.

It works ok. There are a few rough edges. Like I might be playing with markdown one year and then again a few years later and end up with two markdown directories, in different years. Whatever. I can usually find old work for reference pretty easily.


PDFs and reference material not written by me is stored in mendeley/zotero (I'm using both right now) so it's easily cross referenced and text searchable across my devices and I'll have my reference material at any job I go to. My background is engineering not research but when I discovered these tools my note taking/referencing skyrocketed. I put every worthwhile pdf I find in it. I've begun following a lot more research/science types lately to learn their systems because it's stuff I never really encountered on this end of tech.

Code is in ~/workspace which is typically ~/workspace/$company/$github-repos

My markdown docs (snippets, research) are in ~/workspace/docs/$whatimresearching

I do everything out of my workspace. This lowers the amount of cruft I have to move between systems when migrating. Mostly dotfiles and ~/workspace and I'm good to go. And I keep offline backups of course.


By project. https://egypt.urnash.com/blog/2019/01/06/how-i-work-file-org... goes into more detail. I am an artist, so perhaps what works for me won't work for programmers - but I am also an artist who self-publishes comics, which are huge projects that sprawl across multiple files and programs.

References go into a few directories, there are some vaguely sorted directories of inspirational images, books go into an "ebooks" directory that has a few broad categories in it, mostly I just go to that directory and type what I'm looking for into OSX's search bar.

When I do commissions, reference images generally get dropped into the Illustrator file and deleted from the filesystem.


  ~/Other People # containing one directory for every person; synced to Nextcloud
  ~/Documents    # most of my personal stuff; synced to Nextcloud
  ~/Downloads    # symlink to ~/Local/Downloads
  ~/Local        # Everything that is unimportant
  ~/Projects     # containing one git repository per project
  ~/Skripts      # various scripts I use; synced to Nextcloud
Photos are on a separate NFS device. In addition, there are various .* directories, like .vim, .R, .golang, etc. and some of them are being synced to the Nextcloud too. I don't sort by filetype anymore. So I don't care if it is a PDF or something else, but instead, I care about the context: Is it an ebook, a scan, or does it belong to some project?


Summary: By project, alphabetically, flat within reason, with an Archive subfolder for old projects. Different locations for code vs documents.

Details, starting with documents:

I usually know what the thing I'm looking for is called, so hierarchy gets in the way more than it helps.

My documents live in[1] ~/nextcloud/, organized in a flat structure by project, with 3 exceptions, where I add one more level of hierarchy:

1. There is also a folder called `Archive` (the only capitalized folder, to avoid accidental autocompletion), where I move old, inactive projects — this keeps the flat list from getting too large to navigate (the Archive folder becomes harder to navigate, but I seldom open it so that doesn't matter).

2. When a large number of projects (significant % of total folders) fall under the same umbrella. So far this has only applied to school. Inside my `school` folder, the classes themselves were still organized in a flat structure by course dept-number (eg, comp115, ec6), rather than by semester. Another separate folder with the same structure for high school; both are currently archived.

3. When it makes sense to use a different organizational method. Again, just one case where this applies: job applications, which are organized flatly by year-quarter-company (all in the file name).

[1] synced between my computers using nextcloud, as you may have guessed. Nextcloud doesn't mandate this and previously I used ~/Documents, but I prefer lowercase folder names — caps are more work to type in the terminal.

---

My code uses a very similar system but with fewer exceptions:

Repos that I contribute code to (mine or I forked them) live in ~/dev/

Repos that I am using as-is (I wanted to build and use a tool, wanted to be able to `git grep` instead of using github/gitlab search, etc) or that I touch very infrequently (eg, fdroiddata) live in ~/repos/. This is kind of equivalent to my archive folder.


My folder structures mirror the various git remotes I use. At the root of the structure, I have github, gitlab, bitbucket, etc folders. The contents of each mirrors whatever repos I'm working on for each.

All my personal stuff is backed by a set of repos in my personal gitlab account. I have one for references, another for notes, another for my personal log, another for documents, one for secrets (encrypted using blackbox), and one for machine configs. I commit and push these as I add things out of habit, but I might do something more automatic eventually. I've also thought about building automation to maintain ToCs and changelogs and stuff for some of this and executing it on gitlab ci.


Exactly how the default application organizes them, whether they are documents, source code, built artifacts or whatever. I have more to do in life than agonize over that.

In fact, where you hang your ornaments (files) on the ceremonial file Christmas tree (file/directory/parent directory tree) is the least interesting part about files.

I'd far, far rather have a rich set of attributes and a way to create relations over them. "All the files I printed by date", "emails I received from so-and-so", "attachments by destination" and so on. Real relationships I actually care about.

This is one of my hot buttons, can you tell?


i dump them in my homedir for a while, and then periodically delete old stuff.

i've never felt a need to organize my files as files. if it's important enough to organize, it's important enough to put in a wiki or git repo or some more structured way of organizing things than files on a filesystem.


Does the total time searching for files exceed the time it would take to meticulously organize them?

https://www.voidtools.com/


Search is definitely faster, but I think both compliment each other. I use Everything(and Listary) about 90% of time too. But I think there has to be some kind of rough hierarchy in place, to make the scope of search smaller and find the files quicker.

Also, sometimes you cannot find that one file you're looking for with search, or worse, cannot even remember what it's called, but with some light organization, you at least have some idea where that file resides.


I use a Nextcloud box with Hetzner. My general file org looks like this: Camera Upload (from Iphone) Documents zotero (webdav sync for publications with zotero).

Inside my "Documents folder" I have a shared folder with my wife (bunch of junk / pdfs), a personal one with a bunch of random crap, a linux folder full of config files / scripts / readmes / backups and a Work folder. Inside my work folder it's organized based on the company I was working for at the time, then by project or customer. I have been consulting for a few years, so inside that folder it's all organized based on the client, usually named by their company name, then inside of that it's individual projects. Granted, this is just me, so the org isn't too bad. I also have folders labelled "paperwork" inside my business which is, like it sounds, full of receipts, contracts, templates, etc. One thing I do that may be different to others is I'll keep invoices and company specific paperwork inside that companies folder. If I get an NDA from company xyz, it will usually go in xyz/paperwork or something like that.

I do the Doctor's office approach; each client or project is a folder where a bunch of stuff gets thrown in.

Maybe this helps you? Maybe not? Been working for me for a few years. For code I'll save the code in my Nextcloud and then also do commits with my git server.


Forgot to add; anything I get on the internet is in the Downloads folder. If it is anything I can get again I consider it junk and don't save it. If it's important it gets saved to zotero or put in my documents. Otherwise, it's garbage and I clean out my Downloads every other week or so.


I rename files and folders a lot. I.e., I fuss over the names I give files and directories a lot -- including directories containing downloaded software, so I was very discouraged recently on encountering software that breaks when you rename any of the directories above where the software is installed. (Specifically, if you rename any element of the path to node_modules, packages installed by npm break.)

To effect this renaming (and for general care of directories) I use Emacs's Dired mode except for directories containing image files, for which I use Mac's Finder because it is better at displaying images files. I resisted embracing Dired mode for many years, but stopped resisting immediately on discovering dired-hide-details-mode.

Although I have a directory of PDFs, I strive to keep as much reference material as possible as plain text. Most of this plain text was obtained by selecting all the text on a web page (with Command-A), copying it, then pasting it into a text editor, then manually removing the illegible passages. I sometimes wonder whether I spend too much time making such copies and keeping them organized on my computer.


I liked this ted talk on organizing. The heuristics they use could be applied to digital folders as well. I guess its tangentially related but i found it a quite interesting listen.

Edit: https://www.ted.com/talks/tom_griffiths_3_ways_to_make_bette...


The easiest way is to just show you. I'm mostly a manager unit these days so I have something similar to the following:

  /Team 1 #a team I manage
     /Program A #Some program for a customer
        /Project 1 #individual project for that program, might be a tool, a document, etc.
           /subfolder #various things organized as makes sense for the project
           /subfolder
        /Project 2
           /subfolder
     /Program B 
       /FY<previous year> #each Fiscal Years, I move everything
          /Project 1
             /subfolder
          /Project 2
             /subfolder
             /subfolder
       /Project 1
       /Project 2
          /subfolder
          /subfolder
  /Team 2 #some older team I used to manage or belong to
     /<similar to Team 1 as makes sense>
  /Team 3
     /<similar to other teams>
  /R&D #various research programs
    /FY<fiscal year of R&D>
       /Project 1
          /subfolder
       /Project 2
          /subfolder
          /subfolder
    /FY<more fiscal years with similar structures>
  /Business Development #gotta get new customers!
    /Customer 1
       /Contract Effort 1
    /Customer 2
       /Contract Effort 1
       /Contract Effort 2
    /<and so on>
  /Staff # any documents I need to produce for my staff
    /Staff 1
    /Staff 2
    /<etc.>
    /PreviousStaff # any staff who are no longer under me
       /Staff 1
       /Staff 2
  /Library # I point ubooquity at this
    /<subfolders by topic>
  /Personal # person employment documents
  /Corporate # corporate issued materials
     /Security
     /Policies
     /<etc.>
This works for me as I can usually find something within a few seconds because it all has some semantic meaning to me that works with how my memory works, and I have about half a dozen years of intense work plowed into this structure. That being said, more and more of my work is ending up in various enterprise Office things like Sharepoint, Teams, etc. Code, other documents for sharing and such stay in their appropriate Gitlab repos, Confluence/Wiki pages.

tbh, this makes it significantly harder for me to find old documents than with my system -- raw search just isn't good enough.


This thread is already 8 hours old, but the advice should also be classified by how long the commenter has been using their methods.

A person who has a couple years (or less) organizing their files and folders is very different from someone who used their methods for 10+ years and didn't lose the data.

Speaking of losing data, having a working backup/restore strategy is a critical part of a workable organization method.


Last summer I worked at an art gallery. It was my first time working on a shared file server and it was a mess—except for the exhibition files.

There was a main “exhibitions” folder. Inside of that was a folder for every show in the gallery’s history.

Each of these was named starting with the year of the show + another number indicating whether it was the first show of the year, or the second, etc.

There was a somewhat standard structure for what you would find inside of each of these (contracts, artists bios, press photos, etc), but it didn’t really matter because there were few enough files that it was easy to browse.

After a couple of weeks, I went home and organized my projects and documents according to the same pattern. I find things faster now.

The keys are this: (1) broad top-level categories (“exhibitions”) (2) dated folders (3) shallow structure inside dated folders (files in root or one folder deep)

This pattern makes it easy to know where to put things, and Easy to browse. Find the category you want, then the date range you want. Now you’re only have a few folder names to read. Browsing the files inside of there might take a little while if there’s a lot, but usually there won’t be. And you can relax because if the file exists, it’s gotta be in here.

(Or maybe one other place—sometimes files don’t make it out of “Downloads,” and sometimes I have to check both “Art” and “Design” before I find the project I’m looking for. But that’s ok, because dated folders makes that easy to do.)

Others will suggest giving up and relying on search. Search is great, but it only works for files you know (or remember!) exist. Build a simpLe browsable structure and you can find things you’ve forgotten about, or tell collaborators where to look for things they want.


I like that in general, but I would suggest not to use dates in folders - the date is automatically in the file properties of the folder so you can sort by it.

By all means keep a number in the folder name, if the number is meaningful, but also keep a human understandable name in there. That helps when you can't remember if it was the fifth show or whatever, maybe you can remember the name when you see it.

Or maybe I am missing something?

Anyway I try to organize my files kinda like that, but use my Downloads folder as GTD inbox: nothing is meant to stay there.


Ah! The folder name is still human readable, just with a date out front: “2019 open education conference” for example.

Putting the year in the name is helpful because the year you did the thing may differ from from the created/last modified date. At the gallery, for example, these folders go back to the 1950s.

Even for more recent projects, I find myself adding to old folders from time to time (converting document formats etc), or not recognizing that a handful of files represent a coherent “project” until a year after I created the first one.

So it’s useful to be able to swap between sorting by file-system time and “actual” time. It prevents alphabetical sorting, but if I know enough of the name for alphabetical sorting to be useful I can usually just use a search.

Agreed re: Downloads, although it can take some time to get to it.

Edit: I also see others talking about having “archive” folders. The date system makes that mostly unnecessary.


Context >

   Programming: Language > Project_Name
   Writing: Month > Article_Title > 
   Resume: Year > 
   Professional: Company > Notes
   Photography: Year > Month > Photos
   Videography: Year > Month > Videos
   Music: Artists > Albums (or mixtapes) 

None of this is on my desktop, I either use finder or terminal to get through them.


For a while I have been using USB drives to store semi-current files. Currently a 128Gb Sandisk Cruzer as it's always plugged in and allows me to keep the MBAs 128Gb drive 1/3 empty.

To keep it sane I have everything stored in dmgs that once full either get archived or copied across to the next USB. (I started this process using a 16Gb)

I currently have:

Projects (32Gb for PDFs: proposals, briefs and other project specific docs and files)

Software (8Gb: 2/3 full)

Fonts (8Gb: 1/2 full of fonts, icons and svgs)

Docs (8Gb: mostly empty but for references, api docs, etc)

The free space is largely taken up with virtual machines that I copy across to the MBA HD when needed.

Backup is quick and easy as you backup the dmgs. Same for archiving as you name the dmg file with the date range.

I do have a few dmgs that are "stuff", but generally anything important goes straight from email, dropbox, etc to the drive. Everything that ends up in ~/Downloads is typically deleted.

The 2Tb primary backup drive though is a different story. When you hit files with 8.3 names you know you're in deep. It's about due to be replaced with a 4Tb.


I'd find a different solution if you can, apple usb ports shouldn't be relied on long term. I've had them fail on me before and it becomes more and more likely as the machine ages, and not a simple fix.


While I like the Mac default folders in ~, there’s too many applications out there now that abuse Documents or add things there. So I made a Docs and Code folder in Dropbox.

For me, one of the major things that helps is having an _unpaid_ Dropbox subscription. Because I have a limited amount of space, I always ask the question how important is this file and should it be in my Dropbox. This kinda nukes most files - I’ve found most things I download from the web to be ephemeral or application launchers.

For Docs - I store all my personal IDs, taxes and documents (I was an immigrant in the US and it’s so much easier to have my ids on my phone in case of an emergency).

For Code - these are projects that I’m not backing up to Github yet. The rest are on Github

For photos I have Amazon Drive and for music I have Spotify. That’s cleaned the clutter a lot. The easiest way to stay organized is weirdly enough to offload it to the cloud. I have some other things like PDFs and EPUBs for my Kindle that go into Reading in Dropbox.


I'm cheap so I have multiple small SSDs rather than a single 8TB+ one. The OS lives on an NVMe SSD which has not much else on it. Largely because my "home" directory is actually a toilet where every misbehaving application dumps piles of "special stuff", so 500GB of SSD gets filled up fairly regularly.

I have a 2TB disk of mostly music, which is mostly FLAC. Music is in classical/vocal/pop folders then artist/album subfolders except that classical is mostly composer/album. A scary amount of that is stuff I have ripped+scanned myself, because even the modern artists so often give me the choice between stupid plastic trinkets or compressed garbage. Buying 320kbits mp3 and discovering that it sounds upsampled from 128kbits is a mistake you only want to make once.

I have a 2TB "work" disk with virtual machine images, code repos, whatever it is that piles up when I work. And that disk is a bit full. It's mostly organised by employer/project, then yyyy-mm within project folders if necessary.

I have a 2TB disk called "stuff" with photos, documents, ebooks, calibre library (yes, I store them twice. Ebooks are small and Calibre has lost the plot before), software installers I've paid for or that I think might vanish, personal websites, all that stuff. Most are in relevant folders then for docs and photos there are dated subfolders. Sometimes those are in year folders because at times I've take an awful lot of photos (photos/2009 has ~800 subfolders). There is also docs/tax/{year} for obvious reasons, which have everything from photos of receipts to hours-worked spreadsheets.

It's all backed up onto legacy disks with one copy in the office I used to work in (still my employer, but covid) and one in the shed. A couple of those disks have working files and original RAW files for the photos as well, but that's a 6TB disk by itself.


Great ideas all around here, definitely stealing some!

Personally, there was a time where I grew a little fond of numeric-based naming. It allowed for quickly tabbing between directories, easy separation and predictable ordering (eg. 1xx is for clientA, 2xx for clientB, 9xx is for miscellaneous files etc).

Fun story of how that came up; at some large project they were using Sharepoint for everything. From specification documents, to invoices, to code backups and JAR files.

I never figured out whether it was Sharepoint translating for different locales or people using Windows machines different languages, you'd get things like "My Documents", "Mes documents" "Τά Έγγραφα Μου" and "Eigene Dokumente" all mangled up together, which was a nightmare to navigate in, both in speed and understanding, so the this numeric-based naming was an attempt to put some order to that chaos.


You may also want to check out: https://writings.stephenwolfram.com/2019/02/seeking-the-prod...

...and look at the "My Filesystem" section.


~/Documents/$(YYYYMM)/ mostly for personal stuff. I have a Makefile rule in ~/Makefile that moves ~/Desktop/* there periodically.

I also have ~/Documents/eeqj/$(YYYYMM)/ for my revenue-related files, and ~/Documents/eeqj/$(YYYYMMDD).$(PROJECTNAME)/ for specific projects.


Could you share that makefile? That sounds exactly like how I'd like to manage my desktop.


https://git.eeqj.de/sneak/hacks/src/branch/master/homedir.ma...

Some usage described in my blog post that first referenced it:

https://sneak.berlin/20191011/stupid-unix-tricks/

PS: How do I contact you? Send me an email.


Thanks! I'll send a mail across


Manually and imperfect but it works. Clients and Sides folders are the most used. Client folders usually have Site (for latest), Concept, Drafts, Logos, general files, etc. Downloads gets cleaned of anything massive, occasionally sorted, but otherwise just left alone - mostly serves as a museum years later. Then Business (Quotes, Invoices, various business-related ventures, Employees, Banking, Financials, etc) and Personal (house, hobbies, cars, the children, etc).

Day to day, there are usually 5-7 external drives directly connected - Lightroom catalogues by year, video source file storage, cache drives for video editing, etc. For source videos, I've settled on YYYY > Project or area, MMMM. That seems to work for my scale at this point.

I have a friend who spends more time on perfecting his file structure than creating anything. I strive to avoid that!


I basically just use two roots - documents and projects. Documents is stuff that gets backed up, including stuff related to projects but not in a repo, and projects is anything from a repo.

Within each, there's subfolders for each client, by name. Within each of those, there's subfolders for each project. I used to do one subfolder like "{client} - {project}", but I find that it's easier to type a couple letters of the client name, then the enter key, then a couple letters of the project name. As opposed to having to type the entire client name, plus space-dash-space, just to get to the project names.

Everything else non-project related is, admittedly, a dumpster-fire on my FS. Thank goodness for Everything [0].

[0] https://www.voidtools.com/


3 physical hard drives + 1 external hard drive.

The SSD is partitioned to two, where system and program files are in one, and projects are in a separate partition.

A 1TB HDD attached has two partitions, one to contain photos (organized by year/event), music (genre/artist), etc.

The other partition contains temporary files. Browser downloads, torrent downloads, encoded media files, etc go on here. If I don't bother to move a file elsewhere, it's deleted after 30 days automatically.

A third HDD is for backups. I use idrive 5TB plan for cloud backups, but also use Windows backups just in case.

An external hard drive contains movies, all photos (I have a Nikon DSLR and shoot in raw), and a copy of veracrypt drives I manually backup to).

I occasionally mount a veracrypt drive (16GB) for private keys, financial documents, passport scans, bank statements, etc).


Common things are simply by category and subcategories starting from the media/file "type" (e.g. books, photos, etc).

Projects are created in a ~/playground directory and are eventually moved to a ~/projects one (but sometimes they just stay in a RAM-disk; i.e. experiments).

Within coding projects I usually have /src, /doc (by category and subcategories) and /utils (with utility scripts, Docker-related files, etc) sub-directories.

PDF et similia that don't fit within a specific project typically are generic enough to be placed somewhere under ~/books.

The main issue with this system is that there could be work-related things under distinct paths (e.g. ~/documents/work/<org> and ~/projects/<name>), but those may be archived together...


Projects get their own folder with a running plain text notes file that I can grep for timestamps or keywords. Sometimes these folders get a little messy, but not hard to find anything with grep and locate, ultimately.

I make heavy use of the desktop since its a gui after all. I have aliases to all my project folders, aliases for all notes and my todo lists. I also take a lot of screenshots and these are periodically dumped into a folder on the desktop. I start the day with an empty desktop, then open my todo and mail.

Pdfs and reference all go into zotero and topics get their own subcollection, including an unsorted 'to read' where I dump things. Pretty painless to grab stuff off the web with zotero connector and word processing integrations.


I've found two important self-reinforcing principles to be more important than the details:

* Don't let bare files exist at the "top level" (~), have a limited number of buckets * All new stuff goes into an inbox (pragmatically, ~/Downloads) and gets REGULARLY moved over

Putting all the stuff from Downloads into folders takes <10 minutes if you do it once a week!

For me, the different buckets end up as either "browseable" or "searchable". For example, ~/ebooks is pretty sensibly organised into programming, fiction, etc., and all the files have human names, whereas I have a "statements/receipts/leases" bucket that's just a big bucket of junk that will hopefully pop up in search if I ever need it.


`~` contains these dirs: `inbox, lib, code, proj, org, .archive, .sync`

Things arrive in inbox, and get sorted into lib or code. Org contains notes. Files are symlinked from lib/code/org into proj &/or .sync.

Lib folder structure is kinda similar to how 4chan is broken down, plus an irl folder for important shiz.

PDFs have reasonably descriptive titles or at least the DOI. I recommend ripgrep-all for document search.

Tried library systems like Dewey and they're a good way to hide your files from yourself. Single folder plus search tools and non-terrible titles (terrible titles are deemed acceptable only in the inbox), then symlinking out into project folders makes more sense to me.

The code folder also has a `gh` folder for GitHub projects I'm checking out.


~/tmp - scratch folder for WIP stuff I don't care if I lose

~/dat - downloads and other temporary data

~/vir - virtual machines

~/arc - everything backup worthy

~/arc/dot - dotfiles, in "stow" format to easily set up on a new machine

~/arc/prj - projects, mostly software. Usually symlink to ~/prj

~/arc/doc - documents, organized by life-stage, project, company (e.g. "finances", "$company")

~/arc/img - pictures/videos

~/arc/dat - backup worthy software, keys, and other "data"

~/arc/res - research projects. Could go under prj/ I suppose.

~/arc/eml - IMAP email snapshot

I use Zotero and Mendeley (historical) for PDFs. I have a folder in ~/arc/dat/books for ebooks and the like.


  ~/
  │── .cfg            # bare      git repo with my dotfiles
  │── local           # e.g.   make install --prefix=~/local
  │   - lib, bin, man  
  │── .trash          # files to delete
  │       # VARIOUS DIRECTORIES WITH REPOS
  │── src             # clone public open source repos, e.g. for contribution, research or debugging
  │── stellar         # personal repositories
  │   - archive       # hold tgz of repos to save space and indexing
  │   - repo1
  │   - repo2
  │── apple           # contains repos for a previous  company
  │── microsoft.      # repos from another company , consulting project, charity effort


Downloads and new software go in ~/Downloads and periodically get archived in a subfolder called zarch which is nested

Documents and projects go in a ~/Documents or ~/Syncthing depending on where I need them or how much redundency they need...Notes go in the Joplin and Zettelkasten directory depending on what they are. Im moving away from Joplin to .md files, ctags and nvim.

Apps and scripts go in ~/bin or their standard location if it will result in them being more easily updated.

Im always looking to improve my system and have accepted the process of constant research and tweaking as a hobby. It will invariably get in the way of genuine productivity however.


This is related to videos only: I wanted a way to browse a video collection, quickly search, and preview screenshots before viewing; also wanted to browse external hard drive without connecting it. So I created Video Hub App

https://github.com/whyboris/Video-Hub-App - MIT open source

https://videohubapp.com/ - $3.50 minimum price but $3.50 of every sale goes to the cost-effective Against Malaria Foundation


Not sure how you'd do it, but it would be really interesting to see an analysis of how the $3.50 going to the Against Malaria Foundation affects people's choice about whether to pay more.

The idea of someone looking at it and thinking "well, I'm already paying $3.50 that goes to a good cause, may as well tack on another few bucks for the developer" seems like it would make sense, but I wonder if that would actually show up as prevalent.


I sold over 1,700 copies as of now (2+ years since 1.0.0 release). Some people have emailed to say they've given more because of it. Most people probably just by the app without knowing $3.50 goes to charity. Many choose to pay more (I suspect because they like the app so much - I get may emails with praise).


"Every document belongs to a project": https://github.com/slowernews/hamster-system


>> What do you do with pdfs and reference stuff?

1) Root: everything is stored on a separate drive, that in turn is backed up to a NAS, that is itself backed up to another offsite NAS.

2) Sub: inside of root is several folders representing major concepts like development, images, software, and so on. They can be multi-level deep, like "development/languages/C++).

3) Topic: inside of the sub is everything related to this topic. So, could be a project if it lives under programming, a software product if it lives under "network", and so on.

4) Search the above using a tool like FileSearchEX.


I found https://www.reddit.com/r/datacurator/ to be a good starting point.



Partitioned SSD. Probably unnecessary, would change things if I started over.

Most documents are in YYYY-MM-DD <description> format

Pictures are a mess of filenames.

C:\ has normal Windows, default mappings for Downloads, Desktop, etc.

D:\ is my storage partition.

Root directory contains a TrueCrypt volume for anything sensitive

\Projects\<project name> for all projects at any stage of completion.

\Pictures\ \Images\ (specifically for computer generated stuff) \Books\ \Software\ \Music\ \School\ \Old Desktop Files\ Probably some treasures in there \organize_this\ Maybe more treasures here


On Mac, I don’t really bother with too much file organization. I have some broad categories but really not more than 1 or 2 folders deep. Stuff that doesn’t fit into those categories just goes in the folder with everything else. Although, I put all presentations in the same folder. I mostly use spotlight for files navigation.

On Windows, I find I need to spend more time organizing as the search seems to be substantially worse than spotlight. Search is still my go to though.


Great question!

I have a pretty standard organization of my home folder, not interesting enough to describe except one mildly interesting method (very mildly interesting):

Everything that is not in a subfolder of my home folder but directly at the root, gets archived once a month to a path like /archive/2020/04. I keep the last rolling 3 years of archive. The rest gets automatically deleted, but is permanent backed up in a B2 bucket.



I'm on windows, i have a bunch of folders in C:\Data. I sometimes use the "Everything" app to find stuff by file name. It instantly searches the whole drive. I don't use pdfs much, and I don't find I need to search for them. If I did I'd either have to give them useful names to be found by "Everything" or set up some kind of full text search app.



/home/content has a bunch of base folders: Code and Projects have version controlled content Documents, Images, and Video are media with subfolders by type Music has mostly ogg files organized by artist and album Sounds is samples and noises Mail mirrors my email folders Sites has local copies of web apps Packages has archives, tarballs, zips


If it's a big project, it gets its own repo.

If it's a small project, it goes into my single big repo for all small projects.

For reference material (I accumulate tons of PDFs) it goes into OneDrive and I put a link to the file in my wiki. This wiki is stored inside the same repo I use for my small projects.

Notes go into the small project repo as well.


For anything organized by date using ISO 8601-inspired date formats (yyyy-mm-dd-hh-mm-ss) is supremely helpful.


Save files to my desktop. When it gets too messy, I throw a one-liner "hide desktop icons on mac" command in Terminal. When it never gets messy again, I don't repeat.

defaults write com.apple.finder CreateDesktop -bool false && killall Finder

I'm about 2~3 years deep at the moment.


Post Haste can setup project templates. The idea is you set up a structure once and then just duplicate it for new projects.

https://www.digitalrebellion.com/posthaste

(disclaimer: I’m the developer of this app)


I very dutifully curate my text files, but for everything else I always struggled to follow the GTD "Reference" alpha system.

Tiago Forte has a system called PARA:

- Projects

- Areas

- Resources

- Archive

This is just enough structure for me to know where things are. The hardest part to me is there are things that cross the Areas/Resources boundary.


~/tmp - temporary code snippets, checkouts, etc.

~/dev - code repos (dev as in development, not devices ;)

~/projects - symlinks to directories in ~/dev that I'm actively working on

~/.dotfiles - dotfiles git repo with symlinks to the right places

~/notes - a git repo of markdown notes


By general area, so about 10 directories. Files and subdirectories named clearly.

Exception: A desktop folder with misc, including previous versions of other desktop folders with misc that includes even older desktop folders full of misc including...


I throw everything into my Nextcloud folder. I have a Mac Mini running 24/7 using a Hazel rule on any file in the root, older than 7 days, move to a top level folder called Archive.

...Archive is huge. But its a great visual separator.


Definitely by project. It’s simpler to stick to and it'll give my laptops a bit of much-needed organization. Even if each project folder is a little bit messy, things will be a lot easier to look out.


I don’t and hope search works!


There's a tool on Windows called Everything. I use it to grep file names on my hard drive, so I don't care too much about how docs are organized.

But I use Org-ref to download pdfs and update my bibtex.


There's a $HOME/src for all the source code. It's on a separate partition.

Subfolders for projects.

Every project has a directory named `my.tmp.dir`, thats in global gitignore. Everything project related goes there.


Code goes under src/. For pdfs of receipts, notes I jotted in txt files, etc., I create a new directory each year and just leave everything in there unorganized.


I have a Chris directory with subdirectories for taxes and such. The root level I have directories for all my client projects DevACME. DecOID, etc


incidentally i think that all OSes get the defaults wrong. People don't organize split their lives by videos or pdfs, but by Project. Ideally $HOME should contain a directory for each project and nothing else. Our memory works well with a timeline, it sucks at remembering things in arbitrary tree structures.

We are also good at spatial 2d memory, but no UI has taken advantage of that


I recently organized by year, with a few sub folders as I wanted. It worked great! Really cut down the clutter with minimal effort.


1) I collect a bunch of Very Important Documents and Files. I maybe try to organize them.

2) At some point (days in...) this falls apart.

3) I get sick of not being able to find new files and throw everything in some folder ('archive', 'shit', whatever)

4) these end up on a hard drive in a drawer somewhere, eventually.

5) I go "man I need to throw away these old hard drives, better make sure there's nothing good on them"

6) I find the junk folders go "oh man good thing I didn't just toss this drive" and put the junk folders somewhere on whatever my current backup/mass-storage drive is ("uhhhh I don't have a good place for it, I'll just stick it here and go through it later to categorize everything, I'll just call this 'old_drive_stuff'" but of course I never look at it again).

7) At no point do I examine or use any files that land in any junk folder aside from maybe getting a brief "oh shit I remember that!" nostalgia trip on re-discovering them, before tucking them away again, not to be seen until I am once more clearing off an old hard drive so I can throw it away.

Incidentally, I think two things that might help with this are 1) not having to manually clean up filenames and metadata on every goddamn thing before I feel comfortable putting it in with my "nice" files (this is part of why files accumulate in a kind of "junk drawer", because I put off this work), and 2) some kind of easy "send-to" workflow to toss (especially downloaded) files to pre-defined categorized locations, ideally with both a very quick manual interface (not farther than two clicks away, or one CLI command) and an optional automatic one based on file extension. All configurable, naturally. Bonus for more complex filtering rules—like my mail inbox, really. Yeah I could write it but that's one more thing to carry around and another thing that would leave me helpless on machines that aren't mine, or aren't my main OS, or whatever. It should be built into the OS or file manager.

I also think there are lots of different kinds of files and handling them all the same isn't great. Ideally my editing-format documents would actually be a container holding an archive of "finished" versions of them (not just every time I've hit save, and certainly not a complete undo history or anything) so they all move around together and can't get separated. Same for photos, probably—keep an original and any edited variants I've made all in one file and only (and automatically) split them up (export one of them) when it makes sense to do so.

[EDIT] example of otherwise-good software that tries to do some of this organization for me on-file-open but fails at it: iBooks. There are two main categories of ebooks I open: those I want to keep around permanently, and those I just want to look at for a little while then I don't need it anymore, or that I want to keep around but strictly associated with some other files on disk. Opening a .epub adds it to my icloud-backed-up iBooks library every single time. This is perfect for books I want to keep but sucks for books I'm just opening for a second, because then I have to go delete them, or keep a second (probably worse) ebook reader around and understand both programs' features. I have two types of .epub, then, with different use cases and organizational patterns needed—I need an "add to library?" prompt when I open them. IIRC Calibre does something similar and can't be my only ebook reader for the same reason (which makes me want it not to be an ebook reader at all, just an organizer accessible through an open-with menu)

[EDIT 2] Oh it's just called "Books" I guess. Was it ever iBooks or did I imagine that? Whatever, point stands.


Meh. All information is ephemeral. We'll all die at some point, and until then, grep & find will work just fine.


Why should I with all the search available?


works goes into "repo/<project name>"

personal stuff go into: ~/files, then ~/files/archived, then ~/files/archived/archived. At some point I just make sure it's backed up, delete it all and start fresh with ~/files.


    ~/Code
    ~/Code/bin                             # symlink to ~/Code/for/all/dotfiles/bin,
                                             is in $PATH
    ~/Code/build                           # stuff I don't actually write code for
                                             but I do want the repo downloaded
    ~/Code/for/all                         # opensource projects
    ~/Code/for/all/dotfiles                # my dotfiles, homedir has symlinks to
                                             here
    ~/Code/for/me                          # private projects
    ~/Code/for/$client                     # projects for said client
    ~/Code/for/$client/for/$clientOfClient # projects for said client of client
    ~/Documents/Personal                   # symlink to Nextcloud
    ~/Documents/Personal/$myName
    ~/Documents/Personal/$myName/1 Income
    ~/Documents/Personal/$myName/2 Tax deductions
    ~/Documents/Personal/$myName/3 Housing
    ~/Documents/Personal/$myName/4 Utilities
    ~/Documents/Personal/$myName/5 National taxes
    ~/Documents/Personal/$myName/6 Local taxes
    ~/Documents/Personal/$myName/7 Healthcare
    ~/Documents/Personal/$myName/8 Insurance
    ~/Documents/Personal/$myName/9 Education
    ~/Documents/Personal/$myName/10 Transportation
    ~/Documents/Personal/$myName/11 Subscriptions, internet, TV and contributions
    ~/Documents/Personal/$myName/12 Banking, savings and investments
    ~/Documents/Personal/$myName/13 Loans
    ~/Documents/Personal/$myName/14 Retirement
    ~/Documents/Personal/$myName/15 Receipts, invoices and warranties
    ~/Documents/Personal/$fianceName       # same structure as above for me
    ~/Documents/Work                       # symlink to company Google Drive
    ~/Documents/Work/Assets                # any image/video assets etc. provided
                                             to me
    ~/Documents/Work/Designs               # frontend designs not in sketch cloud,
                                             mostly for clients of clients who have
                                             a third party designer
    ~/Documents/Work/In                    # documents someone else wrote
                                             no subdirectories here other than
                                             splitting by client, but tags are
                                             heavily used to link a doc to a project
    ~/Documents/Work/In/$client
    ~/Documents/Work/In/$client/
    ~/Documents/Work/In/$client/$clientOfClient
    ~/Documents/Work/Out                   # documents I wrote, again no subdirs
    ~/Documents/Work/Out/$client
    ~/Documents/Work/Out/$client/$clientOfClient
    ~/Nextcloud/Application Support        # mackup location for things not in the
                                             dotfiles repo
    ~/Nextcloud/Public                     # dump directory for shared files
I use Photos.app for my photo's and just organise things in albums.

Passwords are on a bitwarden_rs server and I mostly use the browser clients for Bitwarden and the Alfred workflow to access them.

Books.app for ebooks but there's no organisation needed there, I just rely on the search function.

Video's are on my Plex server.

iCloud Drive is just used to store templates for Pages, Numbers and Keynotes.

OneDrive is a tool to transfer things to and from Windows testing machines.

I don't have local music anymore these days.


Badly.


~/notes/ folder for org-mode notes (and other text based notes)

~/notes/journal.org dumpster for my personal day-to-day. from random quotes, to bizarre thoughts i had, and even code snippets (e.g. extract all image links from a page is one that i seem to keep going back to...)

~/notes/journal.work.org same thing as journal.org but for work related stuff. the layout is slightly different: it's a flat structure where each headline is top level (the personal journal is tree-like with year->month->day style nesting). it contains mostly technical details, notes on tasks and various bugs/TODOs.

~/code/qqj/ for my personal repos. i usually keep a "journal.org" style file in each private repo, detailing my work, thoughts, possible directions, snippets i found useful/interesting etc.

~/code/<company name> for work repos

~/code/ everything that is not personal or work related goes straight under "code". if i'm learning a new language i'll create a ~/code/<lang> dir and clone into it various repos to experiment with and learn from.

~/sync/ is like a dropbox dir that is synced across all machines. only the must have stuff that is lightweight.

~/cloud/ for cloud backup (exists on this machine only, not synced to other machines)

~/devon/ for devonthink databases (they are also synced to ~/cloud/ via devonthinks internal sync thing). most of my files i save in devon databases (i usually have two open: one for work and one for personal stuff, like interesting articles i find etc. but whenever i'm working on a personal project that requires extensive research and document collection i open a database for it. most of the documents are webpage captures in pdf format, pdf files (like papers and articles), and images. if it's text-based it's most likely under ~/notes/.

~/Downloads/ is for... downloads and pretty much everything else that is transient in nature. it's a big dumpster i clear out every month or two. every time i clean it i also empty the trash (before deleting current generation of Downloads). it's not automated because i like reviewing what i've been up to, and seeing how bad my adhd was this month :)

~/tmp/ is for files that can be deleted at any time (so... super transient files i guess). i'm not using /tmp/ because i want control over when they are deleted.

~/muhmusic is for offline music :) although i barely use it these days

~/ also contains a bunch of other directories that are synced to cloud backup, like a lecture series i downloaded from youtube. i prefer to have "big" meaningful collections like a lecture series under home dir because i'm much more likely to notice them when doing random stuff, and look into them.


Mostly in Dropbox

  - Apps                      <= created by Dropbox
  - Cold Storage              <= does not sync to local, large archive stays in cloud)
  - Inbox                     <= Scanbot app, Brother MFC2740 scanner) 
    - 2019-06-13_160921.pdf   <= workflow folder, files get renamed and filed
    - 2019-06-13_160932.pdf
    - 2019-06-13_160988.pdf
    - etc.
  - Personal                  <= random personal stuff
    - 2014 Porsche 911 C4
    - 2017 Maserati Ghibli
    - Business                <= PDF files
    - Fashion                 <= shoe sizes, suit/shirt size, receipts, model #s, so I can buy the same thing the next time
    - Financial 
    - Graphics                <= random graphic stuff for reference
    - Manuals                 <= random manuals of stuff
      - 7" Monitor           
      - Aeotec Z-Stick 
      - Baratza Encore (2018) <= sometimes stick a year to remember when purchased
      - etc.
    - Marketing 
    - Photos                  <= headshot, DL, Passport
    - Recipes    
    - Receipts                <= random receipts (don't really track it, accountant uses credit card statements) 
    - Sailing  
    - Technical 
  - Projects                  <= projects/companies not started yet, temp
    - Example1 
    - HoldingTemp  
  - Shared-Company1
    - Logins.md               <= user/password, EIN #, address, contacts 
    - Corporate               <= TAX letter, CORP paperwork/filing, trademark
    - Financial 
    - Investors
      - Subscriptions
    - Marketing
    - Operations
    - People                  <= folders for people to share files
      - John One             
      - Sally Two
    - Sales
      - Product Images
    - Tech
    - Vendors                 <= anything coming from vendors goes here, invoices, statements, receipts, etc.
      - Chase Bank
      - UPS
      - Stripe
      - etc.
  - Shared-Company1-Private   <= if really need a 2nd tier of access
    - ...
  - Shared-Company2
    - ...
  - Shared-Company3
    - ...
  - Shared-***
    - ...
  - Shared-Accountant         <= share with accountant
    - Personal                <= personal records, IRA,  
      - 2019  
    - Project1
      - 2019
      - 2020
    - Project2
  - Shared-Family             <= shared with immediate family 
    - 123 Main Street         <= home files, manuals, etc
      - Vendors             
        - Electricity         <= bills, solar credits
        - Cable
        - Joes Plumbing
        - etc. 
    - Taxes 
      - 2020
    - Vendors
      - ETrade             <= brokerage statements
      - Bank of America    <= bank statements, tax 
      - Chase              <= credit card statements
      - Samsung TV         <= manuals, receipt, etc.

Anything with Shared-* signals to me that anything I file into those folders are visible to others

Sometimes there are levels of access for the company (all employees get the main `Shared-` folder and then the key personnel or owners get `Shared--Private`

---

Then for working

  ~/Projects        <= git clone ... (checkout folders)
    - MainWork     
    - SuperProject
    - AnotherOne
    - etc.
  ~/Servers         <= vagrant boxes
    - www1          
    - mdb1
    - etc
  ~/Tools           <= things that do not go into Applications
    - eclipse       
    - geektook
    - rdm
    - flutter
    - etc.
  ~/VirtualBox VMs  <= support for vagrant boxes (created by VirtualBox)
    - www1
    - mdb1
    - etc.
  ~/X-Projects      <= projects that are ready for archiving 
    - OldTest1    
    - MainWork_2020-01-01
    - etc.

* All downloads from browsers go directly to Desktop and they get filed

* Photos go to Google Photos https://photos.google.com

* No real music library to speak of so can't help you there, mostly Pandora and Overcast

* The Brother MFC2740 scanner uses an upgraded firmware (so you can send an email directly from this scanner without the need for a computer attached to it via SMTP which is the most awesome thing), then it goes to a Zapier email-to-dropbox, then goes to the Inbox folder above

* I also create a "list" in amazon of everything I have bought (even not from amazon) so I can find product manuals easily


Start with year


I found the replies from three years ago useful: https://news.ycombinator.com/item?id=14604454

I use my email inbox as a task-queue, and try to move important info into personal notes (vimwiki), so I consider email alongside files and folders. I've learned to optimize my notes for information retrieval, rather than easy entry -- spelling out new acronyms, for example -- with the goal of making it searchable later. I think there was a HN post about personal note taking last month, re: productivity.

I'm heavily command-line focused and my preference for long-term storage is Markdown.

I use PDFs in only a few ways: - References, bulletins, bills, etc. through `less`. `:r!less foo.pdf` will load it into vim, and I tend to check those into vimwiki. Editing by hand allows individualized tags, and anonymization, which is important in my sector. - Articles via Mandeley (but this is overkill unless you want to cross-reference between new articles)

I distribute my home directory with rsync and backup regularly with restic. Both have sophisticated exclude rules, if you need 'em. restic observes the tar-compatible CACHEDIR.TAG droppings, which is easier to use than rsync's proprietary rule filters. For example, a properly-formed CACHEDIR.TAG in ~/.local/cache will direct tar and restic to skip that big directory.

To edit a remote file, slice out something important for later into notes, `vim scp://remote/path` is a neat trick. Only a few keystrokes to put it into vimwiki, or vice-versa (edit the remote file by inserting part of a locally-stored note). vimwiki is the only plugin required.

Many of my systems are shared between multiple human users. On home systems, some users are only interested in using file shares (not terminal access). I create groups Videos, Music, Photos, etc. Make each human user's respective directories stickied to those groups, and you can read (and, importantly, backup) without `sudo` intervening (see `sudo -n` if you find yourself toiling over this). On home and work systems, I use `stow` perhaps more than I should: I build with PREFIX=$HOME/.local/$toolname, then stow it into place with `cd ~/.local ; stow -S $toolname`. This allows custom builds of, say, `cmake` or `git` without system-wide changes. Oh, for Python 2 specifically, I install my own pip out of reach of anyone else.

`stow` is a symlink manager intended to lubricate different UNIX packages that are individually lodged under /usr/local/stow. It's written in Perl, so some systems (early stages of linux-from-scratch, for example) have xstow, which does not have Perl dependency. I see a lot of comments here about ~/Desktop and ~/Photos management, so here's one idea:

Create ~/Archive/2020-06/{Desktop,Photos} and, inside ~/Archive run `stow -S 2020-06`. This creates symlinks ~/Desktop -> ~/Archive/2020-06/Desktop and similar. When you feel like dumping weight, script up something like `mkdir 2020-07/{Desktop,Photos} ; stow -D 2020-06 ; stow -S 2020-07`. The timestamped organization is preserved for you without having to interact with timestamps.

PS> The screenshotting facility is underdeveloped for command-line workers. I'd rather be able to grab the local tmux scrollback buffer, throw it into the editor, possibly saving it to notes, even if just temporarily. An image would be unacceptable, so I overrode the screenshot key to grab tmux scrollback if in focus. This permits a specific search when I can't remember the branch where an obscure error occurred years ago.

PPS> You can script your own capabilities for `less` to open nonflat files. It automatically throws PDFs through pdftotext, but you may desire something like: - Pretty-print and colorize JSON - Read OpenOffice docs - Syntax highlighting - Parse SSL certificates


I'm on MacOS, so some stuff I keep in the folders that come with an account by default.

~/Desktop/: nothing here, don't like the clutter.

~/Documents/: mainly just files stores by applications, I don't intentionally put anything here

~/Downloads/: self-explanatory, but I try to keep this clear by either deleting, cataloguing, or short-term storing everything in here.

~/Downloads/stored/: a sort of temporary "not important enough to catalogue, but I'll maybe use it more than once so I'll keep it around for now" folder.

---

~/Sites/: websites that I'm working on, generally as git repos so not backed up to cloud

~/Repos/: all my other git repos not in ~/Sites/

~/Repos/external/: git repos that I don't own but that I've forked

---

And then the big kahuna, where I actually store everything* that has ever been created by me digitally, which is backed up to cloud...

~/Cranium/: the root folder, which has two sub-folders

~/Cranium/cortex/: the long-term storage, well-organized "catalogue". Everything is sorted by categories and sub-categories, etc., etc. The categories right now are – archive, audio, coding, databases, design, dotfiles, edu, finance, folks, games, gimmicks, image, jobs, modeling, projects, reading, records, sparse, text, video, writing.

~/Cranium/cortex/dotfiles: This sub-folder deserves an honorable mention, because being on Unix I have a lot of dotfiles (config) that normally live in my home folder. I wrote a program that, whenever a new hidden dir/file is added to my home directory, it automatically moves it to this folder and then symlinks it back into the home directory. This makes it much easier to start up new systems and keep my settings / profiles backed up.

~/Cranium/hippocampus/: this is basically what other people would normally have on their desktop. Stuff that I generally want to keep around, but is either a very active project (and therefore want to be able to access quickly without having to click through multiple levels of organization) or is otherwise changing/ephemeral so I do not want to spend the time cataloguing these things in "cortex", lest the content and therefore desired structure changes. When something in here winds down, I either delete it or move it to "cortex".

And that's about it.

* I've started to move a lot of content into my note-taking service, as over the last couple years I've found a pure directory structure is pretty restrictive at the end of the day, even if you have spent a lot of time coming up with a flexible structure that suits you (as I have).


In result of working with multiple unsorted files and systems+vms during 10 years my file structure evolves multiple times.

I made ideal top architecture called 'indexed tags': <tag><index>

project0 - tag: 'project', index: 0

project1 - tag: 'project', index: 1

I used automatic tools for drive differences with my drive.py tool. drive.py analyze two disks changes + calc hash for each file, then produce report

Plus:

+ cover all systems, languages & projects, docs, notes + big data things

+ independed mac-linux-win-vms bridge

+ remove random download chaos

+ minimalistic & lite

Minus:

- None

Linux and Mac base dirs (same for Cygwin):

~/src - everything is here

~/mnt - symlinks to mount drives

Backups:

/backup/ - projects backups

/DD/<FULL_HW_DRIVE_NAME> - big data copies, iso, vms, dd, unsorted manual copy node_modules/

Projects examples:

System 1 disk 1. Primary system, and same structure repeats on every new system with any drive, and indexed tags will be filled while a time (depends by a tasks)

~/src/admin0 - admin projects

~/src/ai0 - AI pdfs, projects

~/src/apple0 - iOS & Mac test projects

~/src/gamedev0 - game dev projects

~/src/btc0 - bicoin projects

~/src/doc0 - for random pdfs

~/src/papers0 - for usable pdfs & docs

~/src/hack0 - hack projects

~/src/os0 - os projects

~/src/web0 - web projects

~/src/fonts0 - data fonts

~/src/sound0 - data sounds

~/src/tasks - bookmarks, notes, tasks, local docs

~/src/work0 - work projects

System 2 disk 1

~/src/tasks

~/src/work0

...

System N disk K

~/src/tasks

~/src/work0

*

Disks examples:

~/mnt/1 - for temporrary mount random image, usb

~/mnt/2..16 - like: 'mount random.iso.or.drive ~/mnt/2'

~/mnt/ext500 - ext4 500G linux only data of 500G hdd 1

~/mnt/m3T - hfs+ 3TB mac only data of 6T hdd 2

~/mnt/o1T - exfat 1T shared data of 6T hdd 2

~/mnt/l2T - ext4 2T linux only data of 6T hdd 2

~/mnt/b1T - exfat 1T shared backup of 1T hdd 3

~/mnt/2T - ntfs 2T win only of 2T hdd 4

~/mnt/a500 - linux 500G only of 500G ssd 1

~/mnt/b100 - linux 100G only of 500G ssd 2

~/mnt/c100 - linux 100G only of 500G ssd 2

~/mnt/d200 - linux 200G only of 500G ssd 2

~/mnt/m4T/backup - mac manual backups 1

~/mnt/b4T/backup - shared manual backups 2

~/mnt/m4T/DD/ - big data copies

~/mnt/m4T/DD/128G-OCZ_VERT_EX_PLUS - hard drive copy

~/mnt/m4T/DD/128G-OCZ_VERT_EX_PLUS/sdf.dd

~/mnt/m4T/DD/128G-OCZ_VERT_EX_PLUS/sdf.dd.sha256

~/mnt/m4T/DD/64G-SAMSUNG_USB - just a usb backup for easy format

~/mnt/m4T/DD/64G-SAMSUNG_USB/Downloads/* - random usb flash downloads

Verification & comparasion reports:

~/admin0/drive.py/log-a128g-0 - report 1 ~/mnt/m4T/DD/ copy and original ~/mnt/a128g

~/admin0/drive.py/log-a128g-1 - report 2 ~/mnt/m4T/DD/ copy and original ~/mnt/a128g

All old and new Windows systems has shared locations for common software (like in Linux or no a special structure is here, because windows chaos is not my primary target:

C:\Shared - everything is here

C:\Install - software installers


To preface, I'm a PhD student in computer science. I spend about 50% of my time reading, 25% writing, and the other 25% coding, so my organisation is highly focussed around that workflow at the moment.

1. I follow BSD guidelines where possible (https://www.freebsd.org/doc/handbook/dirstructure.html), with the extension of a portable ~/.local/bin directory of scripts that's symlinked to my dotfiles.

2. Projects (mine or otherwise) live in ~/Repositories, with reverse domain name. E.g. ~/Repositories/gitlab.com/harritaylor/project name. I am a heavy user of z (https://github.com/rupa/z), so the big nesting doesn't bother me at all. I found that if I tried to organise it into some ~/work ~/projects directory I would spend time messing around with it/organising and sometimes even kept two distinct versions of software projects going. Oh, also: I use `git grep --line-number -e "TODO"` to keep track of what I need to do in a project. I really tried with stuff like org mode, but in the end I found it was so much easier to just drop a "TODO" in a comment within the context of the code, and use a high level description of the problem in my separate notes.

3. I keep a ~/Notes directory for https://obsidian.md, with a subfolder of ~/Notes/pdf/ for papers. This is synced via git to my iPad with working copy to markup notes, as I find it a lot easier to read and process papers on the sofa rather than at the desk. For each paper I make a markdown file of notes with the name of the reference (author:year.md), and keep all my citations organised in my ~/Notes/references.bib file.

4. I use bookmark OS for anything found on the web that is not immediately useful (usually from hacker news and twitter), rather than cluttering up daily notes or git cloning it. I used to use pocket for this but I've recently split "to read in downtime" and "to research" into two different services to avoid burnout. I dedicate around an hour a week pruning this after I have worked through my reading list.

5. "Working documents" such as current presentations or paper drafts live on the desktop for quick reference in meetings, as well as immediate reminders that they still exist.

6. I haven't figured out a useful way of organising my documents otherwise: I currently treat ~/Documents as an archive, organising by context (freelance, phd, private), and the folder prepended by the most specific time `YY_MM_DD-name`. It's super clunky, it doesn't really work, but it's the best thing I've found so far.

This setup is totally portable by design, and I have reproduced this working environment between my work mac (boo, I know), a linux VM on a windows PC, and my remote linux workstation. The biggest revelation for me personally was the ~/Repositories and `z` combination. No more remembering where I cloned a project in the spur of the moment!

Now, to read everyone else's solutions and figure out my (6)!


Side note, years ago I organized decades of hard drives, this found clips of my baby siblings playing with microphones and old video games.

I went through literally every folder. Took probably 20 hours.

Wondering if I could simplify this with python. Eliminating generic program files, but keeping all user data. The goal wouldn't be perfection but to take that 20 hours and turn it into 5 hours.

Does this exist in any capacity right now?


Dear Friend,

Learn mask is urgent needed there with sanitizers, we have N95 KN95 and disposable face masks to offer with sanitizers,CE and FDA certified.

Competitive prices and quality. Mask and sanitizers are shipped by air. Safe and Quick

Any needs please email me for quotation.

name philip Gonzalez Whatsapp :+1-740-966-1107 Email:masfinancialservices1@cash4u.com




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: