top | item 23404900

Ask HN: How do you organise your files and folders?

181 points| throwawayt856 | 5 years ago

By project, by tool? What do you do with pdfs and reference stuff, surely not Dewey Decimal?

173 comments

order
[+] jaquers|5 years ago|reply
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.

[+] mrspeaker|5 years ago|reply
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.

[+] m463|5 years ago|reply
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)

[+] otterlicious|5 years ago|reply
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. :-)

[+] fimdomeio|5 years ago|reply
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.
[+] verdverm|5 years ago|reply
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

[+] gerdesj|5 years ago|reply
Sounds suspiciously like my /home/<user>/tmp/ directory.

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

[+] lioeters|5 years ago|reply
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.

[+] namelosw|5 years ago|reply
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.

[+] 2OEH8eoCRo0|5 years ago|reply
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.
[+] tugberkk|5 years ago|reply
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.
[+] skocznymroczny|5 years ago|reply
I see you have a very structured approach. I usually have to look for the stuff I need in Desktop\Stuff\Backup\oldStuff\old\
[+] simonebrunozzi|5 years ago|reply
Only seven? Rookie. I probably have 15 to 20 folders that somewhat serve that purpose :P
[+] rodolphoarruda|5 years ago|reply
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...)

[+] raindropm|5 years ago|reply
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!

[+] acidburnNSA|5 years ago|reply
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).

[+] errantspark|5 years ago|reply
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.
[+] tomp|5 years ago|reply
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...

[+] karatestomp|5 years ago|reply
> 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.

[+] arminiusreturns|5 years ago|reply
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.

[+] Gibbon1|5 years ago|reply
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.
[+] alanbernstein|5 years ago|reply
Thanks for sharing this, I'm kind of shocked I haven't encountered it before. Definitely adopting it.
[+] glup|5 years ago|reply
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.
[+] karatestomp|5 years ago|reply
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)
[+] ericpauley|5 years ago|reply
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.
[+] jakamau|5 years ago|reply
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.

[+] enobrev|5 years ago|reply
I'm surprised your dates are M.Y rather than Y.M. Doesn't that get confusing over time?
[+] gorgoiler|5 years ago|reply
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.

[+] enobrev|5 years ago|reply
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.
[+] dhruvkar|5 years ago|reply
>> 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.

[+] analog31|5 years ago|reply
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.

[+] dvcrn|5 years ago|reply
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 :)

[+] ghr|5 years ago|reply
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...

[+] battery423|5 years ago|reply

  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 :)

[+] digitalsushi|5 years ago|reply
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.
[+] eatmygodetia|5 years ago|reply
~/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.

[+] philsnow|5 years ago|reply

    ~/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.

[+] enobrev|5 years ago|reply
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

[+] igorhvr|5 years ago|reply
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/

[+] rotterdamdev|5 years ago|reply
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.
[+] rcarmo|5 years ago|reply
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.