/home is for every program to store its personal junk in hidden files apaprently
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.
idk if unix or linux file system
Thank you for that, I always wondered about the meaning behind a few of these directories.
Just know this isn’t a universal layout and depends on the distro.
Yeah I know, like sbin isn’t used in most modern distros, right?
Yes, you put the app in /opt, no not in /bin or /usr/bin
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.
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.
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>
I do /volumX for additional hard drives.
For most network share I use /mnt/$server.
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.
Or /home/me/drive
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 always thought /usr stood for “user”. Please tell me I’m not the only one
I think it originally did under old Unix, it was what /home is nowadays; “Unix System Resources” is a backronym.
You are correct and this can be seen in some of the old AT&T demos from the '80s floating around on YouTube. There is even a chart that specifically labels a directory like
/usr/bwk
as the user’s home.Plan 9 also uses this old convention; users live under
/usr
and there is no/home
.
Yup same. I always wondered why there was a user folder when we already have home.
Same. I actually feel like I remember the professor of my only unix class saying that. Hoping I’m wrong.
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.
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: http://lists.busybox.net/pipermail/busybox/2010-December/074114.html
THREE WHOLE MEGABYTES
Me in 2024 holding a 4TB NVMe stick: Still not enough (it’s never enough)
Same, but with a 22TB drive for /data loooool
This thread is 3 MB
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
You’re not the only one 😅 🙋
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/rootThey 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.
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s16.html
https://unix.stackexchange.com/questions/5915/difference-between-bin-and-usr-bin
Mostly historical reasons, /home was often a network mounted directory, but /root must be local.
And only regular users have their home in /home
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.
Yes, that is true. I was speaking in the context of very early Unix/Linux before initrd was a thing.
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.
Is there a reason to keep this structure other than „we’ve always been doing it like that“/backwards compatibility?
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).
/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.
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.I’ve also seen autofs network automounts go in /net
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?
Yeah, but why?
You can mount a hard drive anywhere, and why not put all the cdrom and thumbdrive folders in /mnt, too?It gets even more complicated nowadays because most DE will mount removable drives somewhere in folders like /run/$USER/
/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.
/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.
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.
/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
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.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.
It’s always been for USeR binaries. It’s the first time I’ve seen this bizarre backronym (40 years of Unix here).
“Linux File Systems”
*List of root directories*
Uh, where are the file systems? EXT4… BTRFS… FAT32…
That’s what I thought too. This is directory structure, not file systems.
Meanwhile the Linux Standards Base cries in a corner.
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 😂
Y’all got this! Good luck 🍀
This image is misinformation. That’s not a filesystem, that’s a layout standard called the FHS. Filesystems are FAT32, BTRFS, EXT4, etc.
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
Those are directories, not filesystems.
This is the FHS layout, which is one of the common layout style for Unix-like OSes, and it has nothing to do with Linux or filesystems in general. Misleading information.
reminded me of this picture
Since almost everything on the right would be located in /home/<username> on the left, it should include some of the subdirectories of %windir%\
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)
/bin confused me for a while because I thought it meant ‘this stuff is trash, don’t worry about it’.
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
Also /lib is where some people keep discarded capitalists
/lib/tar.d/
That’s a US-only extension mainly used by Facebook and Twitter members.