Linux file system is ext* tho.
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.
Sure but for example I understand that /dev and /proc are actually kind of filesystems on their own
Right?
I was expecting superiors to the fat & exfat file storage systems
To be more pedantic the correct title would be the Filesystem Hierarchy Standard (FHS)…which describes the directory structures
Yep, You are right. Done
I don’t get why this sort of picture always gets posted and upvoted when it’s wrong for most distros nowadays.
Can you recommend one that is correct? I use pop_os (Ubuntu) and Arch. Kinda curious about either one
Not aware of any correct pictures, but I can tell you what’s wrong with this one
- /usr: explaining it as “Unix System Resources” is a bit vague
- /bin: /bin is usually a symlink to /usr/bin
- /sbin: /sbin is usually a symlink to /usr/sbin, distros like Fedora are also looking into merging sbin into bin
- /opt: many, I’d say most, “add-on applications” put themselves in bin
- /media: /media is usually a symlink to /run/media, also weird to mention CD-ROMs when flash drives and other forms of storage get mounted here by default
- /mnt: i would disagree about the temporary part, as I mentioned before, stuff like flash drives are usually mounted in /run/media by default
- /root: the root user is usually not enabled on home systems
- /lib: /lib is usually a symlink to /usr/lib
I would also like the mention that the FHS standard wasn’t designed to be elegant, well thought out system. It mainly documents how the filesystem has been traditionally laid out. I forget which folder(s), but once a new folder has been made just because the main hard drive in a developer’s system filled up so they created a new folder named something different on a secondary hard drive.
Thanks for this. I’m always confused by the layout and this tend to stick to putting things in the same places, even if they’re wrong :)
On my distro(Bazzite), /mnt is only a symlink to /var/mnt. Not sure why, but only found out the other day.
I’m using Silverblue and it also symlinks to /var/mnt. I don’t think it does that on traditional distros, like Fedora 40 Workstation.
I assume it is because /var can be written to while the rest of the filesystem ( outside /home ) is expected to be read-only.
See file-hierarchy(7).
It seems handy when you’re learning about stuff but only when you haven’t learned enough to realize it’s not correct.
I always thought /usr was for “user”… TIL
Huh. I did as well. Like /use/bin was for user installed applications and such. You learn something everyday.
It did, let me explain:
On the original (ie Thompson and Ritchie at Bell in 1969-71), I think it was a PDP-11, they installed to a 512kb hard disk.
As their “stuff” grew they needed to sprawl the OS to another drive, so they mounted it under /usr and threw OS components that didn’t fit.
https://landley.net/writing/unixpaths.pdf
I’ve done the same, outgrew so you mount under a tree to keep going, it just never became a historical artifact.
It is, this infographic is wrong. Or I guess technically some other standard could define it like the infographic, but the Filesystem Hierarchy Standard defines it as a secondary hierarchy specifically for user data.
/usr used to be the user home directory on Unix…well most of them. I think Solaris/SunOS has always been /export/home as I recall.
I’m pretty sure
sbin
originally meant static binaries and not system binaries lolThose are directories, not filesystems.
A blast from the past!
If my /bin contains exe files, something has gone very wrong somewhere…
Also, all these infographics are a sad casualty of the /usr/bin merge.
Holy shit. I’ve been wondering about this for so long
Is it just me, or are the definitions for /sys and /proc mixed up?
Nah, it’s just that
/proc
is incorrect - it contains information about running processes, as well as kernel data structures as visible by the process reading them.No I thinks is basically right although could be better worded maybe
/sys is virtual file structure for kernel system info
/proc is virtual file structure of kernel process info
My understanding is /proc came first but was abused/free for all and started being used for all sorts of non standard/process kernel access. So /sys was created with stricter rules to make it more standardised.
immuatables be all about /var
NixOS enters the room wearing a “/nix/store” t-shirt.
Nix really has a kickass way of doing this. Won’t conflict anywhere and always let’s you know what is managed by Nix.
it usually seems more like whatever distro doing things however they want rather than following any standard
I rarely spot /srv in the wild.
I use /data for local server data.
Pretty sure openmediavault uses it, but that’s the only one I’ve seen
Is there a version of this that wasn’t awkwardly resized?
Best I could find is this copy on imgur.
I never understood the title for /usr. Now I do. Thanks!
This email explains it in detail: http://lists.busybox.net/pipermail/busybox/2010-December/074114.html
TLDR:
/usr
stands foruser
That’s what I’d always thought. Thanks for correcting the bad info from the image. I’d hate to carry that bad info forward.
I always thought it stood for user. I even say it that way.
It’s just short for “user;” “User System Resources” is probably a backronym.