FHS is an absolute dumpster fire that would never be dreamed up in this day and age
wait /usr doesn’t mean user?
/etc has to be the worst name in there
deleted by creator
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”
It kind of makes sense on many BIOS/UEFI-less systems where e.g. Uboot is used. And it does contain things like kernel images, sometimes initRD files etc. (which may not be bootloader files but are still system boot files).
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.
I wonder why that isn’t /cfg? Is there a historical reason?
Try naming a folder “CON” in Windows and learn the magic of old spaghetti code by a multi billion dollar company.
Is there a historical reason?
If you’re asking that in anything Linux related, it’s probably a Yes 99% of the time LMAO
Not just Linux… 99% of the time you see something weird in the computing world, the reason is going to be “because history.”
Windows 11 is still reserving A and B drive for floppy discs.
Looks at the entire networking stack
Yup (unfortunately)
It’s probably the standard in both POSIX and the Single UNIX Specification, so I guess ask Ken Thompson?
According to this, it’s been around since the 70’s and was originally just a catch-all for files that didn’t fit in the other default directories, but over time has come to be mostly used for config files. I assume it would cause utter mayhem to try and change the name now so I guess it just sticks. Someone suggested “Edit To Configure” as a backronym to try and make it make more sense if that helps anyone lol.
I too expected it to be “et cetera”.
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)That’s not POSIX
POSIX sounds like Po-sex which is German for buttsex.
This is truly an education forum. Danke!
/bin and /sbin are symlinks already from /usr, so that’s more than half of “apps”.
No one ever looks at /var? Isn’t that where my Apache dir lives? Sorry, I’ve been off Linux for a while. I think I put Git in there as well.
/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.
https://lemmy.world/post/9437525
My version of this with a bit more detail
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.
Much better, thanks!
It can fits as a desktop wallpaper.
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.
Cool. Thanks for sharing!
Thanks! I’ll save this, tell myself I’m going to strictly follow it this time and forget about it (again) lol
Is there a version of this that wasn’t awkwardly resized?
Best I could find is this copy on imgur.
Holy shit. I’ve been wondering about this for so long
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.
This image shows how the system stores it’s own stuff. Your junk will go in /home/mtchristo/whatever you want.
If you don’t like that, you can do whatever you want. Linux will let you.
Think of it like in Windows where you have this structure.
Yeah, but my point is that every OS has system folders. And Linux gives you more freedom.
You can just create partitions and mount them at whatever path you like.
Hell, you can do /c/not/sure/why/you/like/this/better/clownfarts_penis
When you run git-bash from an install of the git suite, that’s a valid pathname.
Oh. Just on my system?
I like partitions to be at the root of my file system. And dedicate each one to a specific use. And even dedicate a separate hard drive for my personal files. When in need of transfer or repairs just move this drive to another PC and carry on the work while the former PC gets repaired or nuked.
You can absolutely do this. You can mount partitions anywhere off of /
I have 5 drives in a system and I mount them as /storage1 through /storage5
Would like an easy way to remember.
- mnt = mount
- opt = optional ?
- etc = etcetera ?
- proc = process ?
- srv = server ?
- var = variable ?
/srv stands probably for
serve
as in serving static files like static websites. (Source)More information here: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
it usually seems more like whatever distro doing things however they want rather than following any standard
I always thought /usr was for “user”… TIL
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.
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.
deleted by creator
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.
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
Sure but for example I understand that /dev and /proc are actually kind of filesystems on their own
“Linux File Systems”
*List of root directories*
Uh, where are the file systems? EXT4… BTRFS… FAT32…
Meanwhile the Linux Standards Base cries in a corner.
deleted by creator