Linux Directory Structure - FHS (lemm.ee)
from sag@lemm.ee to linux@lemmy.ml on 06 Sep 2024 08:38
https://lemm.ee/post/41570987

#linux

threaded - newest

Laser@feddit.org on 06 Sep 2024 09:03 next collapse

A good first approximation.

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.

Eideen@lemmy.world on 06 Sep 2024 09:13 next collapse

I do /volumX for additional hard drives.

For most network share I use /mnt/$server.

ryannathans@aussie.zone on 06 Sep 2024 09:26 next collapse

Or /home/me/drive

Laser@feddit.org on 06 Sep 2024 09:40 collapse

For most network share I use /mnt/$server.

I use /mnt/$proto/$server, though that level of organization was probably overkill. Whatever…

I do /volumX for additional hard drives.

<img alt="" src="https://feddit.org/pictrs/image/fc50a7e7-9f86-4b23-b9da-1025d09c773d.jpeg">

werefreeatlast@lemmy.world on 06 Sep 2024 10:36 next collapse

I’m gonna blow everyone’s mind… I have my Linux system in a relatively small 4gb drive, and my home in a 4Tb drive. I mount my 4tb drive to /home/me as someone already said.

If my SSD for my OS takes a shit as people say, all you do is install it again, change fstab to swap the home directory and you’re back in business like nothing happened. That’s like 10 minutes install time on a good SSD these days. The other guy who mentioned this, didn’t point this out. The idea of separating my home folder into its own drive didn’t occur to me for years and years of using Linux. Every wrong update I was there copying home like a total windows 11 noob. I also install my extra drives and shares on /mnt, that’s standard.

unexposedhazard@discuss.tchncs.de on 06 Sep 2024 11:09 collapse

On debian when i mount an ftp server through my file browser it uses gvfs

This will mount it to /run/user/1000/gvfs/ftp:host=<IP>,port=<PORT>,user=<fpt-user>

Sonotsugipaa@lemmy.dbzer0.com on 06 Sep 2024 09:12 next collapse

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.

Psyhackological@lemmy.ml on 06 Sep 2024 09:42 next collapse

I’ve also seen creating there deployment or configuration stack of your choice.

NonWonderDog@hexbear.net on 06 Sep 2024 15:51 collapse

No, they have it right. Add-on software means “added to this node/machine”, as in not part of the system image used to configure multiple machines. It’s all very archaic.

FQQD@lemmy.ohaa.xyz on 06 Sep 2024 09:36 next collapse

i always thought /usr stood for “user”. Please tell me I’m not the only one

lascapi@jlai.lu on 06 Sep 2024 09:59 next collapse

You’re not the only one 😅 🙋

superkret@feddit.org on 06 Sep 2024 10:19 next collapse

I thought it was United System Resources.
And I still don’t know what’s the point in separating /bin, /sbin, /usr/bin and /usr/sbin.
Also /mnt and /media
Or why it’s /root and not /home/root

4am@lemm.ee on 06 Sep 2024 10:24 next collapse

I think /mnt is where you manually mount a hard drive or other device if you’re just doing it temporarily, and /media has sub folders for stuff like cdrom drives or thumb drives?

superkret@feddit.org on 06 Sep 2024 10:37 collapse

Yeah, but why?
You can mount a hard drive anywhere, and why not put all the cdrom and thumbdrive folders in /mnt, too?

DarkMetatron@feddit.org on 06 Sep 2024 10:57 next collapse

It gets even more complicated nowadays because most DE will mount removable drives somewhere in folders like /run/$USER/

Dalaryous@lemmy.ml on 06 Sep 2024 11:33 next collapse

/media is for removable drives. If you mount something there, file managers like Gnome will show you the “eject” or “disconnect” button.

/mnt drives show up as regular network drives without that “eject” functionality.

bazzett@lemmy.world on 06 Sep 2024 17:00 collapse

I don’t know if I’m doing something wrong, but I have a secondary SSD in my laptop that I mount on /mnt/elyssa and in every DE and distro I tried it appeared as a removable drive with the “eject” button. Right now I use Fedora with Gnome and if I install this extension or enable the removable drives option in Dash to Dock, it shows me that drive. Maybe some mount option in Gnome Disks, but since it’s not that big of a problem, I haven’t looked too much into it.

umbraroze@lemmy.world on 06 Sep 2024 12:37 collapse

/mnt is meant for volumes that you manually mount temporarily. This used to be basically the only way to use removable media back in the day.

/media came to be when the automatic mounting of removable media became a fashionable thing.

And it’s kind of the same to this day. /media is understood to be managed by automounters and /mnt is what you’re supposed to mess with as a user.

taaz@biglemmowski.win on 06 Sep 2024 10:41 next collapse

/sbin are system binaries, eg root only stuff, dunno the rest but I would guess there are some historical reasons for the bin usr/bin separation

superkret@feddit.org on 06 Sep 2024 10:53 collapse

I know the distinction between /bin and /sbin, I just don’t know what purpose it serves.

Historically, /bin contained binaries that were needed before /usr was mounted during the boot process (/usr was usually on a networked drive).
Nowadays that’s obsolete, and most distros go ahead and merge the directories.

linearchaos@lemmy.world on 06 Sep 2024 11:56 collapse

It’s easier to manage security that way.

Instead of having one binary folder full of stuff that’s intended to be run with privilege access and non-privilege access, all the privileged stuff goes in sbin and you don’t even see it in your path as a regular user. It also means that access rights can be controlled at the folder level instead of the individual file level.

Zeppo@sh.itjust.works on 06 Sep 2024 10:51 next collapse

/home is often on a separate volume. You’d want root to be available in a maintenance situation where /home may not be mounted.

I don’t recall the reasons for the addition but /media is newer than /mnt.

grue@lemmy.world on 06 Sep 2024 12:00 collapse

I don’t recall the reasons for the addition but /media is newer than /mnt.

Something to do with hard-coded mounts in /etc/fstab vs. dynamically-mounted removable media (USB drives etc.), I think.

jaybone@lemmy.world on 06 Sep 2024 15:22 collapse

I’ve also seen autofs network automounts go in /net

DarkMetatron@feddit.org on 06 Sep 2024 10:53 next collapse

Mostly historical reasons, /home was often a network mounted directory, but /root must be local.

And only regular users have their home in /home

mvirts@lemmy.world on 06 Sep 2024 13:34 collapse

Idk why I feel compelled to add this info, but / doesn’t have to be local as long as the necessary kernel modules for mounting it are available in the initrd or built into the kernel.

DarkMetatron@feddit.org on 06 Sep 2024 15:16 collapse

Yes, that is true. I was speaking in the context of very early Unix/Linux before initrd was a thing.

jacobc436@lemmy.ml on 06 Sep 2024 10:57 next collapse

They hold “system binaries” meant for root user. It’s not a hard distinction but many if not most Linux fundamentals have their roots in very early computing, mainframes, Bell and Xerox, and this good idea has been carried into the here&now. Not sure about the provenance of this one, but it makes sense. isn’t /mnt /media different between distros? These aren’t hard and fast rules - some distros choose to keep files elsewhere from the “standard”.

/bin and /usr/bin, one is typically a symbolic link to another - they used to be stored on disks of different size, cost, and speed.

refspecs.linuxfoundation.org/…/ch03s16.html

unix.stackexchange.com/…/difference-between-bin-a…

DarkMetatron@feddit.org on 06 Sep 2024 11:08 collapse

And I still don’t know what’s the point in separating /bin, /sbin, /usr/bin and /usr/sbin.

This goes back to the olden days when disk space was measured in kilo and megabytes. /sbin/ and /usr/sbin have the files needed to start a bare bone Unix/Linux system, so that you could boot from a 800kb floppy and mount all other directories via network or other storage devices as needed.

tromars@feddit.org on 07 Sep 2024 03:53 collapse

Is there a reason to keep this structure other than „we’ve always been doing it like that“/backwards compatibility?

DarkMetatron@feddit.org on 07 Sep 2024 06:10 collapse

The structure is changing, many distributions already are merging more and more of the duplicated subdirectories in /usr/ with the counterparts in / but it takes time to complete that and at the moment those subdirectories are often still there but as symlinks to be compatible with older software (and sysadmins).

schnurrito@discuss.tchncs.de on 06 Sep 2024 10:36 next collapse

I think it originally did under old Unix, it was what /home is nowadays; “Unix System Resources” is a backronym.

[deleted] on 06 Sep 2024 14:51 collapse

.

Kuunha@lemmy.eco.br on 06 Sep 2024 11:15 next collapse

Ken Thompson and Dennis Ritchie created Unix on a PDP-7 in 1969. Well around 1971 they upgraded to a PDP-11 with a pair of RK05 disk packs (1.5 megabytes each) for storage.

When the operating system grew too big to fit on the first RK05 disk pack (their root filesystem) they let it leak into the second one, which is where all the user home directories lived (which is why the mount was called /usr). They replicated all the OS directories under there (/bin, /sbin, /lib, /tmp…) and wrote files to those new directories because their original disk was out of space. When they got a third disk, they mounted it on /home and relocated all the user directories to there so the OS could consume all the space on both disks and grow to THREE WHOLE MEGABYTES. And thereafter /usr is used to store user programs while /home is used to store user data.

source: lists.busybox.net/pipermail/…/074114.html

cm0002@lemmy.world on 06 Sep 2024 15:21 next collapse

THREE WHOLE MEGABYTES

Me in 2024 holding a 4TB NVMe stick: Still not enough (it’s never enough)

heyoni@lemm.ee on 07 Sep 2024 00:02 collapse

Same, but with a 22TB drive for /data loooool

LeFantome@programming.dev on 06 Sep 2024 17:59 collapse

This thread is 3 MB

jol@discuss.tchncs.de on 06 Sep 2024 11:25 next collapse

Yup same. I always wondered why there was a user folder when we already have home.

TrickDacy@lemmy.world on 06 Sep 2024 12:15 next collapse

Same. I actually feel like I remember the professor of my only unix class saying that. Hoping I’m wrong.

gerryflap@feddit.nl on 06 Sep 2024 12:38 next collapse

I was just about to post the same thing. I’ve been using Linux for almost 10 years. I never really understood the folder layout anyway into this detail. My reasoning always was that /lib was more system-wide and /usr/lib was for stuff installed for me only. That never made sense though, since there is only one /usr and not one for every user. But I never really thought further, I just let it be.

AnUnusualRelic@lemmy.world on 06 Sep 2024 13:49 next collapse

It’s always been for USeR binaries. It’s the first time I’ve seen this bizarre backronym (40 years of Unix here).

Baku@aussie.zone on 07 Sep 2024 04:02 collapse

Likewise.

It’s also only just now dawning on me /bin is short for /binaries. I always thought it was like… A bin. like a junk drawer hidden in a cupboard

sirico@feddit.uk on 06 Sep 2024 09:39 next collapse

immuatables be all about /var

neo@lemmy.hacktheplanet.be on 06 Sep 2024 11:10 collapse

NixOS enters the room wearing a “/nix/store” t-shirt.

NuclearDolphin@lemmy.ml on 07 Sep 2024 04:57 collapse

Nix really has a kickass way of doing this. Won’t conflict anywhere and always let’s you know what is managed by Nix.

Dirk@lemmy.ml on 06 Sep 2024 09:43 next collapse

A blast from the past!

todd_bonzalez@lemm.ee on 06 Sep 2024 09:47 next collapse

“Linux File Systems”

*List of root directories*

Uh, where are the file systems? EXT4… BTRFS… FAT32…

Zeppo@sh.itjust.works on 06 Sep 2024 10:55 next collapse

That’s what I thought too. This is directory structure, not file systems.

acockworkorange@mander.xyz on 06 Sep 2024 23:24 collapse

Meanwhile the Linux Standards Base cries in a corner.

moormaan@lemmy.ca on 06 Sep 2024 09:49 next collapse

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 😂

[deleted] on 06 Sep 2024 10:24 next collapse

.

pishadoot@sh.itjust.works on 06 Sep 2024 15:50 collapse

I’m sure this guy’s dad that needs help installing Linux will appreciate the clarification, good thing you’re here to point that out

c0smokram3r@midwest.social on 06 Sep 2024 11:31 collapse

Y’all got this! Good luck 🍀

kuneho@lemmy.world on 06 Sep 2024 10:05 next collapse

reminded me of this picture

<img alt="" src="https://lemmy.world/pictrs/image/e9348a61-3280-4a28-ac1e-6e176de22b2b.png">

elvith@feddit.org on 06 Sep 2024 10:10 collapse

Since almost everything on the right would be located in /home/<username> on the left, it should include some of the subdirectories of %windir%\

kuneho@lemmy.world on 06 Sep 2024 11:02 collapse

welp, it’s another story how useful is this picture 😄, it just came to my mind and brought me some nostalgia in the meantime towards the artist. (yeah, saying artist in this case is strange, but otherwise who made this is a digital artist, or was, idk how active still)

[deleted] on 06 Sep 2024 10:09 next collapse

.

BradleyUffner@lemmy.world on 06 Sep 2024 10:09 next collapse

Those are directories, not filesystems.

savvywolf@pawb.social on 06 Sep 2024 10:19 next collapse

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.

Dasnap@lemmy.world on 06 Sep 2024 10:20 next collapse

/bin confused me for a while because I thought it meant ‘this stuff is trash, don’t worry about it’.

RandomVideos@programming.dev on 06 Sep 2024 10:24 next collapse

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

Zeppo@sh.itjust.works on 06 Sep 2024 10:57 collapse

Also /lib is where some people keep discarded capitalists

Albbi@lemmy.ca on 06 Sep 2024 13:30 collapse

/lib/tar.d/

Zeppo@sh.itjust.works on 06 Sep 2024 16:52 collapse

That’s a US-only extension mainly used by Facebook and Twitter members.

MonkderVierte@lemmy.ml on 06 Sep 2024 10:30 next collapse

Linux file system is ext* tho.

that_leaflet@lemmy.world on 06 Sep 2024 10:54 next collapse

I don’t get why this sort of picture always gets posted and upvoted when it’s wrong for most distros nowadays.

Kusimulkku@lemm.ee on 06 Sep 2024 11:57 next collapse

It seems handy when you’re learning about stuff but only when you haven’t learned enough to realize it’s not correct.

TrickDacy@lemmy.world on 06 Sep 2024 12:14 collapse

Can you recommend one that is correct? I use pop_os (Ubuntu) and Arch. Kinda curious about either one

that_leaflet@lemmy.world on 06 Sep 2024 12:41 next collapse

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.

TrickDacy@lemmy.world on 06 Sep 2024 13:00 next collapse

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 :)

Sunny@slrpnk.net on 06 Sep 2024 13:28 collapse

On my distro(Bazzite), /mnt is only a symlink to /var/mnt. Not sure why, but only found out the other day.

that_leaflet@lemmy.world on 06 Sep 2024 14:28 collapse

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.

LeFantome@programming.dev on 06 Sep 2024 17:57 collapse

I assume it is because /var can be written to while the rest of the filesystem ( outside /home ) is expected to be read-only.

brukernavn@lemm.ee on 06 Sep 2024 15:03 collapse
Skydancer@pawb.social on 06 Sep 2024 11:08 next collapse

Don’t forget /auto, for things that get automatically mounted when you first access them (autofs)

bionicjoey@lemmy.ca on 06 Sep 2024 11:16 next collapse

Fun fact: you get more accurate info by simply running man hier

toothpaste_sandwich@feddit.nl on 06 Sep 2024 11:17 next collapse

The icon for media reminds me of a bidet on a floor plan.

dysprosium@lemmy.dbzer0.com on 06 Sep 2024 11:30 next collapse

Why is /mnt a “temporary” mounting point? I alwags put my permanent ones there. I’d say /media is temporary…

[deleted] on 06 Sep 2024 12:34 collapse

.

amw3i7dwgoblinlabs@lemmy.world on 06 Sep 2024 11:37 next collapse

huh… an exe in my /bin ?

sus…

linearchaos@lemmy.world on 06 Sep 2024 12:06 next collapse

/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.

kalleboo@lemmy.world on 06 Sep 2024 12:25 collapse

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.

Railison@aussie.zone on 06 Sep 2024 12:07 next collapse

FHS is an absolute dumpster fire that would never be dreamed up in this day and age

callcc@lemmy.world on 06 Sep 2024 12:16 next collapse

lemmy.world/post/9437525

My version of this with a bit more detail<img alt="" src="https://lemmy.world/pictrs/image/32e99f05-4397-49fd-ab1a-f56e3f996cb2.webp">

Albbi@lemmy.ca on 06 Sep 2024 13:28 next collapse

Much better, thanks!

petsoi@discuss.tchncs.de on 06 Sep 2024 14:36 next collapse

Cool. Thanks for sharing!

cm0002@lemmy.world on 06 Sep 2024 15:17 next collapse

Thanks! I’ll save this, tell myself I’m going to strictly follow it this time and forget about it (again) lol

Peffse@lemmy.world on 06 Sep 2024 17:22 next collapse

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.

JATtho@lemmy.world on 06 Sep 2024 18:50 collapse

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.

N0x0n@lemmy.ml on 07 Sep 2024 05:45 next collapse

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 :))

callcc@lemmy.world on 07 Sep 2024 10:52 collapse

Look at the post behind the link. There is a dark mode version.

Drito@sh.itjust.works on 07 Sep 2024 13:25 collapse

It can fits as a desktop wallpaper.

Flamekebab@piefed.social on 06 Sep 2024 12:17 next collapse

Is there a version of this that wasn't awkwardly resized?

lapis@hexbear.net on 06 Sep 2024 15:28 collapse

Best I could find is this copy on imgur.

Geth@lemmy.dbzer0.com on 06 Sep 2024 12:32 next collapse

Visualizing it like this makes it so clear how incredibly outdated this design is.

thingsiplay@beehaw.org on 06 Sep 2024 13:11 collapse

What is outdated?

BmeBenji@lemm.ee on 06 Sep 2024 13:38 next collapse

Holy shit. I’ve been wondering about this for so long

superkret@feddit.org on 06 Sep 2024 14:11 next collapse

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)

ikidd@lemmy.world on 06 Sep 2024 14:17 next collapse

/bin and /sbin are symlinks already from /usr, so that’s more than half of “apps”.

possiblylinux127@lemmy.zip on 06 Sep 2024 14:18 next collapse

That’s not POSIX

superkret@feddit.org on 06 Sep 2024 14:23 collapse

POSIX sounds like Po-sex which is German for buttsex.

EarthShipTechIntern@lemm.ee on 07 Sep 2024 01:05 collapse

This is truly an education forum. Danke!

some_guy@lemmy.sdf.org on 06 Sep 2024 14:20 collapse

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.

some_guy@lemmy.sdf.org on 06 Sep 2024 14:19 next collapse

I never understood the title for /usr. Now I do. Thanks!

TheGiantKorean@lemmy.world on 06 Sep 2024 14:21 next collapse

I always thought it stood for user. I even say it that way.

davel@lemmy.ml on 06 Sep 2024 15:07 next collapse

It’s just short for “user;” “User System Resources” is probably a backronym.

CrumblyLiquid@lemmy.ml on 06 Sep 2024 22:37 collapse

This email explains it in detail: lists.busybox.net/pipermail/…/074114.html

TLDR: /usr stands for user

some_guy@lemmy.sdf.org on 06 Sep 2024 23:55 collapse

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.

michdavelz@lemmy.world on 06 Sep 2024 14:19 next collapse

Is it just me, or are the definitions for /sys and /proc mixed up?

Sonotsugipaa@lemmy.dbzer0.com on 06 Sep 2024 14:33 next collapse

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.

BananaTrifleViolin@lemmy.world on 06 Sep 2024 14:34 collapse

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.

geneva_convenience@lemmy.ml on 06 Sep 2024 14:22 next collapse

wait /usr doesn’t mean user?

/etc has to be the worst name in there

filcuk@lemmy.zip on 06 Sep 2024 14:50 next collapse

I wonder why that isn’t /cfg? Is there a historical reason?

cm0002@lemmy.world on 06 Sep 2024 15:07 next collapse

Is there a historical reason?

If you’re asking that in anything Linux related, it’s probably a Yes 99% of the time LMAO

orangeboats@lemmy.world on 06 Sep 2024 15:28 collapse

Not just Linux… 99% of the time you see something weird in the computing world, the reason is going to be “because history.”

cm0002@lemmy.world on 06 Sep 2024 15:38 next collapse

Looks at the entire networking stack

Yup (unfortunately)

Myavatargotsnowedon@lemmy.ml on 07 Sep 2024 11:27 collapse

Windows 11 is still reserving A and B drive for floppy discs.

CrabAndBroom@lemmy.ml on 06 Sep 2024 15:26 next collapse

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.

ulterno@lemmy.kde.social on 06 Sep 2024 16:23 collapse

I too expected it to be “et cetera”.

Revan343@lemmy.ca on 06 Sep 2024 15:37 next collapse

It’s probably the standard in both POSIX and the Single UNIX Specification, so I guess ask Ken Thompson?

pixelblut@feddit.org on 06 Sep 2024 22:17 collapse

Try naming a folder “CON” in Windows and learn the magic of old spaghetti code by a multi billion dollar company.

[deleted] on 06 Sep 2024 15:13 next collapse

.

cogman@lemmy.world on 06 Sep 2024 15:46 next collapse

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.

AngryCommieKender@lemmy.world on 06 Sep 2024 16:37 next collapse

Per the graphic, it means Unix System Resources…

dafo@lemmy.world on 06 Sep 2024 16:43 collapse

I don’t trust a graphic which explains /boot as “system boot loader files”…

AngryCommieKender@lemmy.world on 06 Sep 2024 16:45 next collapse

Well that’s a shame for me. This graphic finally made the Linux file directory structure make sense to me

irreticent@lemmy.world on 06 Sep 2024 17:12 next collapse

Why? What’s inaccurate about it? I have no idea and would like to learn.

dafo@lemmy.world on 06 Sep 2024 18:57 collapse

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”

Peter1986C@lemmings.world on 06 Sep 2024 17:33 collapse

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).

JATtho@lemmy.world on 06 Sep 2024 18:27 collapse

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.

InverseParallax@lemmy.world on 07 Sep 2024 00:43 collapse

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.

[deleted] on 06 Sep 2024 14:32 next collapse

.

pyre@lemmy.world on 06 Sep 2024 14:35 next collapse

what a mess

brianary@startrek.website on 06 Sep 2024 16:33 collapse

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.

ByteOnBikes@slrpnk.net on 06 Sep 2024 19:22 collapse

I switched to Linux a few years ago and you are not wrong.

Windows is a nightmare with directory organization.

Saved games can go:

  • My Documents/
  • My Documents/Games
  • My Documents/My Games
  • <app>/saved-games
Grass@sh.itjust.works on 06 Sep 2024 19:39 collapse

I’m more used to seeing shit like: c:/users/username/appdata/local/developer/game/engine/data3/saves/profile0/epe90_cats90-slot203.nonstandardfileformat

jcg@halubilo.social on 06 Sep 2024 21:18 collapse

And then their non standard file format turns out to just be a zip file or gzipped JSON data 😂

markstos@lemmy.world on 06 Sep 2024 15:25 next collapse

I rarely spot /srv in the wild.

I use /data for local server data.

lemming741@lemmy.world on 06 Sep 2024 15:35 collapse

Pretty sure openmediavault uses it, but that’s the only one I’ve seen

baseless_discourse@mander.xyz on 06 Sep 2024 15:32 next collapse

except nowadays many distro mounts removable media under /run/media instead of /media (for good reason).

matcha_addict@lemy.lol on 06 Sep 2024 17:04 next collapse

What’s the reason?

caseyweederman@lemmy.ca on 06 Sep 2024 18:10 next collapse

Probably so that you don’t accidentally write to a directory by mistake when it isn’t mounted, and then lose access when you mount something over it, all while services are looking for files that are only there sometimes.

Toribor@corndog.social on 06 Sep 2024 21:52 collapse

I’ve had exactly this happen to me. It was my own fault but it took a bit of work figure out.

baseless_discourse@mander.xyz on 06 Sep 2024 18:40 collapse

/run is a temporary fs, so if the mount, filesystem or even the entire system crashed, all the mounted data will be cleaned up after a reboot.

On the contrary, if the mount crashed, it might leave a folder or data on /media, making subsequent mount problematic.

Here is a well-written comment about the rationale behind this mount point: www.reddit.com/r/linuxquestions/…/i40e2za/

uninvitedguest@lemmy.ca on 06 Sep 2024 21:56 collapse

Where would you mount non-removable media?

baseless_discourse@mander.xyz on 07 Sep 2024 00:12 collapse

I think there is no rule, but I like to mount them on /mnt.

A good discussion can be found here: reddit.com/…/where_do_you_usually_mount_your_inte…

uninvitedguest@lemmy.ca on 07 Sep 2024 00:28 collapse

Wow. Talk about ways to skin a cat.

I mount mine to /media using autofs.

I was, at one point, using /mnt but ran in to some situation that Proxmox didn’t like that involved bind mounts (can’t remember what) and shifted them all over to /media.

orangeboats@lemmy.world on 06 Sep 2024 15:34 next collapse

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).

Peffse@lemmy.world on 06 Sep 2024 17:18 collapse

learned this the hard way when I started to get usrmerge errors when I tested an upgrade to Debian trixie.

hyacin@lemmy.ml on 06 Sep 2024 15:38 next collapse

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.

96VXb9ktTjFnRi@feddit.nl on 06 Sep 2024 16:06 next collapse

I learned that just now.

JokeDeity@lemm.ee on 06 Sep 2024 18:35 next collapse

It’s going to be TOUGH to mentally replace.

perishthethought@lemm.ee on 06 Sep 2024 20:26 next collapse

Wow, what an odd coincidence.

craigers@lemmy.world on 06 Sep 2024 21:50 collapse

I always thought it was user and never questioned it. Yeah man there’s shared libraries in there for all the users, so it’s user. This makes more sense now.

ulterno@lemmy.kde.social on 06 Sep 2024 16:21 next collapse

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.

Malfeasant@lemm.ee on 07 Sep 2024 01:13 collapse

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…

ulterno@lemmy.kde.social on 07 Sep 2024 04:09 collapse

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.

nadir@lemmy.world on 06 Sep 2024 23:40 collapse

usr did originally mean user and held user data.

Pretty sure this is a bacronym

Affidavit@lemm.ee on 06 Sep 2024 16:34 next collapse

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.

Resol@lemmy.world on 06 Sep 2024 16:46 next collapse

New knowledge. Thanks.

sol6_vi@lemmy.world on 06 Sep 2024 17:11 next collapse

wow i have needed this forever and im printing it and pinning it to my wall

Mwa@thelemmy.club on 06 Sep 2024 18:05 next collapse

idk if unix or linux file system

JokeDeity@lemm.ee on 06 Sep 2024 18:34 next collapse

Not when I use it!

MrMobius@sh.itjust.works on 06 Sep 2024 18:46 next collapse

Thank you for that, I always wondered about the meaning behind a few of these directories.

InFerNo@lemmy.ml on 06 Sep 2024 19:41 collapse

Just know this isn’t a universal layout and depends on the distro.

MrMobius@sh.itjust.works on 06 Sep 2024 19:57 collapse

Yeah I know, like sbin isn’t used in most modern distros, right?

SplashJackson@lemmy.ca on 06 Sep 2024 18:47 next collapse

I need to get this in sticker form

xorollo@leminal.space on 06 Sep 2024 19:13 collapse

Me too

gofsckyourself@lemmy.world on 06 Sep 2024 19:04 next collapse

Here’s a higher quality version

<img alt="" src="https://i.imgur.com/3TSE0j0.jpeg">

NuclearDolphin@lemmy.ml on 07 Sep 2024 04:51 collapse

Great username

refalo@programming.dev on 06 Sep 2024 19:54 next collapse

GoboLinux has entered the chat

Deebster@programming.dev on 07 Sep 2024 02:07 collapse

Is Gobo case-insensitive by default? Typing those seems annoying.

ngn@lemy.lol on 06 Sep 2024 20:01 next collapse

honestly /home should has never been created we should have kept user homes in /usr

potentiallynotfelix@lemdro.id on 06 Sep 2024 22:18 collapse

why

Qwaffle_waffle@sh.itjust.works on 06 Sep 2024 22:25 collapse

Because housing prices are ridiculous.

Grass@sh.itjust.works on 06 Sep 2024 21:09 next collapse

it usually seems more like whatever distro doing things however they want rather than following any standard

Zozano@lemy.lol on 06 Sep 2024 21:24 next collapse

Would like an easy way to remember.

  • mnt = mount
  • opt = optional ?
  • etc = etcetera ?
  • proc = process ?
  • srv = server ?
  • var = variable ?
CrumblyLiquid@lemmy.ml on 06 Sep 2024 22:20 collapse

/srv stands probably for serve as in serving static files like static websites. (Source)

More information here: refspecs.linuxfoundation.org/…/index.html

walthervonstolzing@lemmy.ml on 06 Sep 2024 21:31 next collapse

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.

icedemons@lemmy.world on 06 Sep 2024 22:01 next collapse

To be more pedantic the correct title would be the Filesystem Hierarchy Standard (FHS)…which describes the directory structures

guillermohs9@lemmy.ml on 06 Sep 2024 22:16 next collapse

Sure but for example I understand that /dev and /proc are actually kind of filesystems on their own

EarthShipTechIntern@lemm.ee on 07 Sep 2024 00:54 next collapse

Right?

I was expecting superiors to the fat & exfat file storage systems

sag@lemm.ee on 07 Sep 2024 04:15 collapse

Yep, You are right. Done

guillermohs9@lemmy.ml on 06 Sep 2024 22:17 next collapse

I always thought /usr was for “user”… TIL

HereIAm@lemmy.world on 06 Sep 2024 22:32 next collapse

Huh. I did as well. Like /use/bin was for user installed applications and such. You learn something everyday.

jalkasieni@sopuli.xyz on 06 Sep 2024 22:40 next collapse

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.

Avatar_of_Self@lemmy.world on 07 Sep 2024 01:39 collapse

/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.

InverseParallax@lemmy.world on 07 Sep 2024 00:47 collapse

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.

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.

Samueru@lemmy.ml on 07 Sep 2024 00:47 next collapse

I’m pretty sure sbin originally meant static binaries and not system binaries lol

mtchristo@lemm.ee on 07 Sep 2024 01:05 next collapse

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.

warmaster@lemmy.world on 07 Sep 2024 01:42 next collapse

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.

Deebster@programming.dev on 07 Sep 2024 02:06 collapse

That’s an old image, though - Windows has a C:\Users\youruser setup like /home/youruser for a while now.

I find the %APPDATA% thing way less convenient than ~/.config and I’m quite happy when programs have the “bug” that they still use ~/.config on Windows.

warmaster@lemmy.world on 07 Sep 2024 03:30 collapse

Yeah, but my point is that every OS has system folders. And Linux gives you more freedom.

Deebster@programming.dev on 07 Sep 2024 07:49 collapse

Bad wording on my part, I wasn’t disagreeing. My file server has a /files directory because it saves me a few key strokes and because I can.

marx2k@lemmy.world on 07 Sep 2024 04:00 collapse

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

corsicanguppy@lemmy.ca on 07 Sep 2024 05:31 next collapse

When you run git-bash from an install of the git suite, that’s a valid pathname.

Oh. Just on my system?

mtchristo@lemm.ee on 07 Sep 2024 10:02 collapse

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.

marx2k@lemmy.world on 07 Sep 2024 12:02 collapse

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

WolfLink@sh.itjust.works on 07 Sep 2024 03:55 next collapse

/home is for every program to store its personal junk in hidden files apaprently

madcaesar@lemmy.world on 07 Sep 2024 11:05 next collapse

So where are programs installed?

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.

None of the folders made any sense to me.

Orasionseis@lemmy.world on 07 Sep 2024 11:19 collapse

It should be in /bin or /usr/bin or /usr/local/bin. You can use “which” command to know

HK65@sopuli.xyz on 07 Sep 2024 11:44 collapse

or /opt, or a binary in some hidden folder in /home…

loutr@sh.itjust.works on 07 Sep 2024 11:53 collapse

Same as Windows and MacOS, really. You can follow best practices and conventions, or just install your software wherever you want.

HK65@sopuli.xyz on 07 Sep 2024 12:00 collapse

I guess the problem is that app developers write the installers, and they suck at following conventions. Obligatory fuck Snap, as it creates a folder in the home dir, and it doesn’t even bother to hide it, and it is not even reconfigurable.

SpeechToTextCloud@discuss.tchncs.de on 11 Sep 2024 10:15 next collapse

Yes, you put the app in /opt, no not in /bin or /usr/bin

jeffhykin@lemm.ee on 12 Sep 2024 15:06 collapse

Distros should ship with this this under /readme.jpg