I learned about 16 years ago on a Solaris course that /usr wasn't "user", I still say "user", but I'm happy to see the information spreading that that isn't what it actually is.
A pedantic thing to say, surely, but the title really should've been: "Linux Directory Structure" -- 'Linux filesystems' (the title in the graphic) refers to a different topic entirely; the title of this post mitigates the confusion a bit, though still, 'directory structure' is the better term.
So where in this setup would you mount a network share? Or am additional hard drive for storage? The latter is neither removable nor temporary. Also /run is quite more than what this makes it seem (e.g. user mounts can be located there), there is practically only one system path for executables (/usr/bin)...
Not saying that the graphic is inherently wrong or bad, but one shouldn't think it's the end all be all.
It feels like /opt 's official meaning is completely lost on developers/packagers (depending on who's at fault), every single directory in my /opt belongs to standalone software that should just be put into either /usr/lib or /usr/share with some symlinks or scripts into /usr/bin.
I have always wondered why there was a developer folder(/dev)
Now i know that the government is trying to make people think it stands for something else so they can replace all programmers with advanced random number generators
I think it's probably useful to mention the Filesystem Hierarchy Standard (FHS) here which describes most of the tree structure detailed in the diagram.
The directory layout mostly adopted by most distros evolved over time though, with major differences existing in how distros view usage of different parts of the filesystem, making it more of a standard that documents how the filesystem is laid out rather than one that defines it.
On a personal note, I hated /run for the longest time, thinking it a pointless, redundant quirk that exacerbated inconsistencies across distros. More recently though, I've come to value a space that is now (mostly) implemented consistently as a tmpfs mount from which to handle runtime data.
I was playing with Linux the other day and installed something and was tearing my hair out trying to find where the exe or whatever was to launch the damn program.
Just forwarded this pic to my dad. I'll be guiding him in installing Mint on one of his old Windows desktops this coming Saturday! Wish us luck in the coming years 😂
For many systems out there, /bin and /lib are no longer a thing. Instead, they are just a link to /usr/bin and /usr/lib. And for some systems even /sbin has been merged with /bin (in turn linked to /usr/bin).
I've been using Linux on and off for years and I've never really understood what these different directories are for. If I don't know where something is I just search for it, though more often than not whatever I'm looking for is somewhere in the home directory. I'm also not sure of the accuracy of this though. I have a VM in /run, and an SSD and thumb drive in /media. I would've expected these to be in /mnt.
This needs some modernization and simplification, if Linux ever wants to make it to the mainstream.
This is a much better layout:
/system (contains /boot, /dev, /proc, /run, /sys, /tmp and /var, all the stuff no one ever looks at)
/config (/etc renamed to something sensible)
/apps (contains /bin, /sbin, /usr, /lib and /opt)
/server (renamed /srv, only gets created when needed)
/users (renamed /home, also contains /root now)
This is one of my biggest gripes stopping me from switching to Linux. I just can't give-up windows' partitions. I find Unix/Linux file system to be incompatible with how I like storing my files.