Hacker News new | ask | show | jobs
by ggm 1643 days ago
I live in /home everywhere I can. Where home is, is a symlink depending on the OS.

I live in /usr/local (FreeBSD)

I used to live in /opt (SCO and Debian and OSX)

I used to live in /usr/local (OSX, Macports and HomeBrew)

I now live in /opt (Homebrew) and some of /usr/local (OSX) with minimal hand edits. Its better to let the pkg management run things

I now live in /tank (ZFS) and /data -> /tank (all OS I can, not OSX)

I now live in ~/Documents/<sub> with symlinks (OSX)

I try very very hard not to mess with /etc in odd ways (OSX, FreeBSD)

I accept limited rights to edit things in /usr/local/etc has to be managed by git, or other ways to keep configurations off the host in case I have to re-create.

I do ZFS snapshots over /data/tank and archive on an idle removable HDD, or replicate via snapshot increments to other hosts.

BSD quotas are too painful, I self police to lie under 10% free as much as possible.

When I install an OS by hand I try to make the "root" disk be at least a mirror. I try to make /data be at least raidz1 but preferrably raidz2

I believe in the power of 3-2-1 (3 copies of everything, two different forms, 1 offline)

I use /.../YYYY/... to move older things into a natural date hierarchy. I still believe in the power of limiting the number of file objects per directory, and keeping directory chains short, and primary direct objects as small as possible, so YYYY/MM/DD forms are natural to me. If I have deep high filecount data which can't do this I shard on hex 2-3 hex elements per subdir, it usually keeps things within sane bounds. Terminal file objects keep their true name. It means I may have YYYY/MM/DD/YYYY-MM-DD.json form data or /AB/CD/E/ABCDE.hex form data. Tant pis

We may be moving back to multiple parallel competing binary architectures (Arm, Intel) in our daily lives. NFS has a concept of interpolated ${HOSTARCH} variables in the symlink name which is increadibly powerful if you want to have a single NFS shared filesystem including system binaries, but have to manage competing binarch architectures. (the symlink literally has the ${string} but shell glob expands it at runtime to the specific architecture) -This is a trick from SunOS in the 68xxxx -> Sparc -> Intel days