upvote
Personally I use ~/opt//bin where ~/opt is a ‘one stop shop’ containing various things, including a symlink to ~/local and directories or symlinks for things that don't play well with others (e.g. cargo, go), and an ~/opt/prefer/bin that goes at the start of PATH containing symlinks to resolve naming conflicts.

(Anything that modifies standard behaviour is not in PATH, but instead a shell function present only in interactive shells, so as not to break scripts.)

Unix lore: Early unix had two-letter names for most common names to make them easy to type on crappy terminals, but no one* letter command names because the easier were reserved for personal use.

reply
What's the difference between opt and local?

I thought was for mixin externally provided systems like Homebrew, local is for machine or org-level customizations, and ~ is for user-level customizations.

reply
Random things are installed in ~/.local/bin. In ~/bin I have only what I put there.
reply
I use ~/.local/bin for installed programs, and ~/bin for my own scripts.
reply
Why would you want to store your binaries in a hidden directory?

It kind of goes against the idea why dotfiles are dot-prefixed.

reply
The latter is XDG.

~/bin predates it.

And of course you can use both.

reply
~/bin/ preceeds the XDG Base Directory Specification.

~/.local was only invented around 2003 and gained widespread usage maybe 15 years or so ago...

People used ~/bin already in the 90s ;-)

reply
Nothing. I also use `~/.local/bin/`
reply