Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm sure there are lots of ways to do it, I'm seeking inspiration as I think it's time to re-organize my home directory structure.

My current structure

Here is my current structure:

~/dl-web
~/bittorrent
~/Desktop
~/PDF
~/work
~/school
~/free-time
~/photos
~/ <<the rest>>
  • dl-web & bittorrent contains downloads from web-pages respective Bittorrent clients.
  • Desktop contains files shown on my desktop in XFCE.
  • PDF contains files I've printed as PDF. Mostly receipts from web pages and other web pages I really wanted to read and couldn't rely on their presence later.
  • work contains everything work related.
  • school contains everything related to my university studies.
  • free-time contains everything I do in my spare time.
  • photos, contains my photos. :-)
  • There are other files and folders in ~ too (<<the rest>>), mostly hidden configuration files which like to be in the root of the users home directory. The things which are not configuration files are only there temporarily.

Pros

  • Everything work related is in its own directory. It's easy to backup and it's also easy to remove once a job is complete and delivered (I work as a consultant).
  • Separating downloads from the rest of the files makes it easy not to backup them.

Cons

  • Having all my spare-time stuff in it's separate directory (which in turn isn't really organized in any structured way) makes my spare time activities second class citizens in my file system. And they really shouldn't be.
  • I would like to have more structure in my home directory. So that it may grow and new data which I haven't got at the moment has it's logical place to be stored. I'd like a structure I could use for ages, hopefully for the rest of my life.

Hard to solve problems

  • Some files may have it's logical place at two different locations. Where should it be stored? I could have a prioritized list of locations. So that if something could be stored in ~/some/location/a and ~/some/other/location/b I would know that a has priority and that the file should be stored there.
  • To have the file available in multiple locations I could use hard or symbolic links as I'm running Linux. But should I? And should I use a hard or a symbolic link?

So how do you organize your home directory? And do you have any ideal way of organizing things which you are striving for?

share|improve this question
1  
Symlink vs. hardlink all depends on the intent of the link. The huge advantage of a hardlink is that any of its instances can be deleted without affecting the others. It's great for organizing files in two ways at once. Say you've just downloaded your distro of choice's latest iso — keep it in your torrents directory AND your software directory and don't worry about purging the download from your BitTorrent client after you've seeded it to your satisfaction. –  Sidnicious Aug 8 '09 at 3:04
    
Good point! Of course the symlink comes in handy if I like to have two subdirectories in my hierarchy with the same contents. –  Deleted Aug 8 '09 at 9:22
add comment

5 Answers

My setup probably isn't the best, but it works reasonably well for me. Bolded are more substantial directories

  • downloads: in addition to browser downloads, it contains a torrents directory with the .torrent files, this is kept pretty clean
  • Desktop: desktop stuff, temporary files in an active working state
  • projects: this contains all my projects, work, or personal (school when I was doing that) including taxes etc. each directory is its own git repository
    • archive: at this point this contains all of my school stuff and work/data for previous jobs, past years taxes. I am not a consultant, though I imagine if I had clients each project would contain an archive directory for inactive projects (not "completed" projects)
    • photos: personally created photos/video, shoots are their own git repositories which I check out into a Windows VM (or reboot into Windows) and do editing in Photoshop
  • media: obtained audio and video
  • docs: this is mostly journal articles these days, organized by work and interesting also contains printed pdfs/saved webpages. It doesn't contain things I'm writing (those are in projects) or research for specific projects (which also live in projects). But does contain video and audio lectures.
    • keep: git repository for receipts, obtained presentations, photos and reviewed other's papers/presentations (though, if I do much editing they get their own project)
  • wallpaper: I suspect this is much like @bedwyr's Tmp, I use it for one-off things, random storage, and a collection of CC-licensed wallpapers (mostly photos). It contains ISOs, random windows drivers, virtual machines etc. (all loosely organized) it's a holdover from older days when I had a random directory in windows. It usually contains all things that can be re-gotten or recreated, but which might be a pain to do so, or are nice to have when offline.

The only things I backup online are ~/projects, ~/photos, and ~/docs/keep

should I use a hard or a symbolic link?

I would probably go the symbolic link route just because symlinks to directories are nice... but I don't actually have the issue of things being in multiple places (probably due to my catchall wallpaper directory).

I'll probably make a ~/bin as @bedwyr has, as those are all in ~/wallpaper/scripts with both re-appropraited scripts and symlinks to specific projects...

share|improve this answer
add comment
  • Documents this is where personal stuff and default stuff goes.
  • bin my scripts. I have this on windows (work), linux (work+home) and osx (home)
  • Public at home, this is open share. at work this is a shortcut to some share
  • Projects
    • One Dir per working project
  • Archives
    • One directory per year
      • One directory per completed project
  • Programming I tend to keep folders by cvs/svn/p4 repository project
  • Downloads

I also do a couple of things to automate this structure. If a directory in Projects hasn't had a modification in 180 days, it is moved to archives.

All files older than 90 days are deleted from Downloads. At first it was 30 days. After switching to 90; I've never found myself wanting a file that was auto deleted.

I've also use the following over the years

  • beach where I kept shell scripts
  • belfry for *.bat
  • pantry for *.jar
  • oyster for *.pl
  • clinic for *.doc
  • M for *.rtf this was an icon of an M on NeXT
share|improve this answer
add comment

If I meld the structures I have at work and at home, I'd get something tolerable...

  • bin - this is a no-brainer
  • edu - this is quite passive now :-/
  • src - this is huge, it has stuff I've just patched too.
  • tmp - tar xvzf; cd ....; ./configure; ... yeah.
  • gfx - All graphical stuff
    • icons - custom icons, my avatar, other crap
    • bg - wallpaper
    • photos - ...
  • encfs - the decrypt encfs of .encfs
  • Dropbox - (note, referral link) mostly symlinks, this helps keep me sane re work/home
    • bin - symlink
    • etc - symlinks line screenrc@host, etc.
    • var - the encrypted .encfs is symlinked here as PUZZLE
  • Public
    • Web - instead of the ugly public_html...
  • adm - at work, timesheets, at home, payslips, accounting.

The only thing here that rates any mention is the tricky bit with the encfs on Dropbox. That way, I don't have to trust them, but I can still sync stuff between my work and home machines.

As another interesting use of FUSE, I've merged my shares, one on each harddrive into a system-wide /share using mhddfs. (I don't know how stable it is, I managed to crash by running beagle indexing on it.)


(Apparently, the dropbox referral link gives both of us a bonus 250Mb.. So, I guess I'm not just being an ass.)

share|improve this answer
add comment

Although I use OSX, the directory structure is appreciably similar. I use:

> ~/Documents
> ~/Downloads
> ~/Sites
> ~/Pictures
> ~/Music
> ~/Movies
> .. etc.

Downloads may as well read temp for me - since anything I download will need to be sorted. Once I've decided what the content is, then I decide where it goes from there.

In documents, I have my major projects organised by:

> /AA Client One
> /AA Client Two
> /AA Client Three
> /AB Client Four
> /AC Client Five

This allows me to have custom sorting based on relevance, rather than alphabetical. Additionally, it allows me to order my clients based on their importance. This is probably the most time saving feature in my documents folders.

I also have a personal folder, which contains my non work related documents. Since I'm not much of a hoardak, I don't keep a lot of personal files - typically some text files and receipts.

Finally, I also have some dumping grounds inside my Documents, where I store things like Code Snippets, and whatnot for review.

Do I plan to change? No, I'm pretty happy.

share|improve this answer
add comment

Without getting into exact details over directory names and whatnot, here are the categories I use to organize things. Each represents some type of directory.

  • Bin: custom-scripts I write (or steal ;) to make my life easier (this is included at the tail end of my $PATH)
  • Documents: this directory contains everything I currently work on which has a literary basis. This includes any writings I've come up with, in addition to anything I come across which I want to keep.
  • Downloads: this directory is pretty self-explanatory
  • Lib: libraries I've either compiled, or downloaded, which are used in applications I'm working on (appended to my $LD LIBRARY PATH)
  • Music: self-explanatory
  • Videos: ditto
  • Workspace: my Eclipse-based workspace (I might have a few of these, depending on the IDEs I work with)
  • Tmp: a temporary scratch-space for quick, one-off solutions (especially useful when coding answers for StackOverflow ;) )

One way I get around the "where do I put this" question is by using sym-links. Since the FS for Linux is hierarchical, it really does get frustrating trying to add a new file which might conceivable fall into one or to categories. Thus, I place it in one, and sym-link to it in another directory if I want to reference it.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.