deleted by creator
That’s what I thought too. This is directory structure, not file systems.
Meanwhile the Linux Standards Base cries in a corner.
https://lemmy.world/post/9437525
My version of this with a bit more detail
Thanks! I’ll save this, tell myself I’m going to strictly follow it this time and forget about it (again) lol
Edit: Thank you, found it on your shared link ! 😄
Oh wow thank you ! Would it be to much to ask for a dark mode version? If there’s a one hit button to change into a more eye friendly color mode :)
Either way, thank your for sharing your work :))
Look at the post behind the link. There is a dark mode version.
I still have no clue where permanently attached USB SSDs are supposed to be mounted. I just shove them into LVM2 and put the mapper under /mnt since putting them under /home wouldn’t let other users access them.
permanently attached USB SSDs are supposed to be mounted
Just mount them somewhere under
/
device, so if a disk/mount fails the mounts depended on the path can´t also fail.I keep my permanent mounts at
/media/
and I have a udev rule, that all auto mounted media goes there, so/mnt
stays empty. A funny case is that my projects BTRFS sub-volume also is mounted this way, although it is technically on the same device.
It can fits as a desktop wallpaper.
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 :)
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.
wait /usr doesn’t mean user?
/etc has to be the worst name in there
usr does mean user. It was the place for user managed stuff originally. The home directory used to be a sub directory of the usr directory.
The meaning and purpose of unix directories has very organically evolved. Heck, it’s still evolving. For example, the new .config directory in the home directory.
For example, the new .config directory in the home directory.
I hope slowly but surely no program will ever dump its config(s) as
~/.xyz.conf
(or even worse in a program specific~/.thisapp/
; The~/.config/
scheme works as long as the programs don’t repeat the bad way of dumping files as~/.config/thisconfig.txt
. (I’m looking at you kde folks…) A unique dir in .config directory should be mandatory.If I ever need to shed some cruft accumulated over the years in ~/.config/ this would make it a lot easier.
Per the graphic, it means Unix System Resources…
I don’t trust a graphic which explains /boot as “system boot loader files”…
Why? What’s inaccurate about it? I have no idea and would like to learn.
It’s not wrong, but it feels a bit like some tech articles you’ll see which are obviously just created to fluff up a CV. I wouldn’t say avyttring here is flat out wrong, just kinda… lacking.
But yeah, /boot holds “system boot loader files”, sure, but that’s a bit vague. It should contain your kernel and initramcpio and IIRC Grub also had its config here. That’s pretty much it. I would’ve rather said /boot contains the kernel.
“device files” it’s so vague that it’s almost wrong IMO. At first glaze I would’ve thought that it means drivers rather than, say, “interfaces to devices”
Well that’s a shame for me. This graphic finally made the Linux file directory structure make sense to me
It meant user, as in user-installed programs and libraries for this system over the core system programs and libraries of the operating system in /bin and /lib.
Someone learned it wrong, but otherwise I think the image is right.
/home is for every program to store its personal junk in hidden files apaprently
/opt/(app)/bin /usr/lib/(app)/bin /usr/lib64/app/bin /usr/local/(s)bin
I know there is logic and mapping of where everything’s supposed to be in theory but in practice s***'s kind of all over the place.
The logic was just that when UNIX was originally evolving, they ran out of disk space on their PDP-11 and had to start moving less-essential binaries to a different disk. That’s why it’s “/usr/” which was originally for user data but that disk happened to have free space.
Any other explanation is just retcon. Some distros try to simplify things.
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.
usr did originally mean user and held user data.
Pretty sure this is a bacronym
I used to pronounce it like yuzr, knowing that it wasn’t user, but not knowing what it was.
Now I have better context. Maybe I’ll go with U.S.R.If you want to confuse people… I pronounce /etc as “ets”, but one of my coworkers recently called it “slash e t c” and I had to ask him to repeat it a couple times before I figured out what he meant…
Well, considering that I am with coworkers who don’t remember when to and not to put the ‘/’ at the start of the file path (despite me explaining it to them multiple times), “slash e t c” is probably the better way.
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.
To be more pedantic the correct title would be the Filesystem Hierarchy Standard (FHS)…which describes the directory structures
Yep, You are right. Done
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
I always thought /usr was for “user”… TIL
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.
Huh. I did as well. Like /use/bin was for user installed applications and such. You learn something everyday.
Here’s a higher quality version
Great username
what a mess
There’s a little historical baggage, but look at Windows: multiple letters for drives, and all of the paths can be modified, so you have to ask Windows where any important directory is physically mapped (like SystemRoot or Documents or Temp or Roaming AppData or many others), because it doesn’t have this nice consistent structure like Linux. Linux presents a logical layer and manages the physical location automatically. Windows makes you do the logical lookup yourself, but doesn’t enforce it, so inexperienced programmers make assumptions and put stuff where the path usually is.
That’s part of why logging in to Windows over a slow connection can take forever if you have a bunch of Electron apps installed: they’ve mismapped their temp/cache directory under the Roaming AppData, so it gets synched at every login, often GiB of data, and they refuse to fix it.
Those are directories, not filesystems.
Visualizing it like this makes it so clear how incredibly outdated this design is.
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’ve also seen creating there deployment or configuration stack of your choice.
I’m pretty sure
sbin
originally meant static binaries and not system binaries lol