“fun” unix fact

there are only six files that the posix committee could get all the vendors to agree must exist at guaranteed paths:

/
/tmp
/dev
/dev/null
/dev/tty
/dev/console

all other paths are implementation-defined, strictly speaking, including the popular /bin/sh and /usr/bin/env.

unix existed before posix, and vendors can make the reasonable if annoying decision to prioritise compat. for example, in solaris 2.6 the posix shell is /usr/xpg4/bin/sh, leaving /bin/sh as bourne shell until solaris 10!

this is part of why maximally portable shell scripts like autoconf’s configure scripts are so arcane. btw wanna find posix sh in a maximally portable way? lol. lmao

that said, being maximally portable isn’t for everyone. if you’re only targeting modern linux and bsd, you can probably assume /bin/sh is posix :)