Why Linux Has So Many Directories (And Why Their Names Make No Sense)
The story behind /bin, /etc, /usr, /var, and the design philosophy of Unix
Why Linux Has So Many Directories (And Why Their Names Make No Sense)
The story behind /bin, /etc, /usr, /var, and the design philosophy of Unix
When people first encounter Linux, they often see something like this:
/
├── bin
├── etc
├── home
├── usr
├── var
And the explanation usually goes like this:
/bincontains binaries/etccontains configuration files/homecontains user files
Technically correct.
But it doesn’t answer a more interesting question:
Why does Linux have these directories in the first place?
Why not something simpler like:
/programs
/config
/users
/logs
And why do names like /etc or /usr even exist?
To understand that, it helps to step back for a moment.

Image generated from Canva
What Do We Actually Use Computers For?
Most of what we do on a computer comes down to two simple things:
- running programs
- working with files
Programs perform computations. Files store information.
Photos, documents, logs, databases, code — they all eventually live as files somewhere on disk.
In fact, one of the core ideas behind Unix and Linux is this:
Linux treats almost everything as a file.
Because of this, the operating system needs a clear way to organize:
- where programs live
- where user files go
- where system settings are stored
- where temporary data should be placed
Linux solves this by organizing everything under a single starting point:
/
This is called the root directory.
Everything in the system lives somewhere beneath it.
To understand why the structure looks the way it does, it helps to think of Linux like something that grew over time.
Much like a house that evolves as a family grows.
Prefer visuals?
[embed]
The Very Beginning
Imagine a young couple moving into their first home.
Just two people. A small apartment.
Everything lives in the same space:
- books
- laptops
- kitchen tools
- documents
- cables
There’s almost no structure yet.
Because there doesn’t need to be.
Early Unix systems were very similar.
They ran on machines with very limited memory, and disk drives could store only a few megabytes of data. The entire system had to fit within tight constraints.
As long as things stayed small, a simple layout worked.
But homes — and systems — rarely stay small forever.
The First Need: Everyday Tools
After a while, the family notices something.
There are certain tools they use every single day:
- scissors
- tape
- screwdrivers
- batteries
So they create a small drawer where these essentials always live.
Unix systems had the same need.
There were a handful of commands that were used constantly:
ls → list files
cp → copy files
mv → move files
cat → read files
These were placed in:
/bin
The name comes from binary executables.
/bin became the place for essential programs required to use the system — the things you reach for all the time.
Soon the System Faces a New Problem: Configuration
As more programs get added, another question appears:
Where should the system’s settings live?
Things like:
- network configuration
- user accounts
- access rules
- service settings
If every program stored its configuration randomly, the system would quickly become chaotic.
So everything was gathered into one place:
/etc
Originally, the name simply meant “et cetera” — a miscellaneous location.
But over time, it evolved into the central place for system configuration.
Files like:
/etc/hosts
/etc/passwd
/etc/ssh/sshd_config
define how the system behaves.
Everyone Needs Their Own Space
As the family grows, more people move in.
Now everyone needs their own place for:
- personal files
- projects
- experiments
- documents
You wouldn’t mix those with shared tools or system rules.
So each person gets their own room.
Linux does the same:
/home
Inside it, each user gets their own directory:
/home/alice
/home/bob
A place to work, experiment, and store personal files — without affecting the rest of the system.
When the House Starts Filling Up
Over time, the house accumulates more and more things.
Tools. Books. Equipment. Old gadgets.
Soon, the main living space feels crowded.
So the family starts using a garage or storage area for the bulk of their belongings.
Unix systems faced a similar challenge — but with an additional constraint.
Early machines had:
- very limited memory
- very small disks
Because of this, systems often used multiple physical disks.
One disk contained the minimal operating system — just enough to boot and recover the system.
Another disk was used to store the growing collection of programs and utilities.
That second disk was typically mounted at:
/usr
So /usr originally wasn’t just a directory.
It was often a completely separate storage area.
Over time, it became the place where most software lived:
/usr/bin
/usr/lib
/usr/share
This design solved an important problem:
The core system could remain small and stable, while software could continue to grow independently.
In a way, /usr was an early solution to scaling — separating the minimal operating system from the expanding ecosystem of programs.
Daily Life Leaves Records
Every household generates activity.
- receipts
- logs of what happened
- packages and deliveries
These things don’t stay static — they keep changing and growing.
Linux needed a place for this kind of data:
/var
The name comes from variable data.
Inside it, you’ll often find:
/var/log
/var/cache
/var/spool
These store things like logs, cached data, and background job information.
Unlike programs, this data is constantly changing.
Sometimes You Just Need a Scratch Space
Every home has a place where temporary things land.
A kitchen counter. A whiteboard. Sticky notes.
Things that are useful for a while but not meant to stay forever.
Linux has a directory for this:
/tmp
Programs use it for temporary files.
Many systems even clear it automatically after a reboot.
Why the Names Feel So Strange
Some of these names feel unusual today.
That’s because they were created in a time when:
- storage was limited
- typing effort mattered
- simplicity was key
So short names were preferred:
DirectoryMeaning/binbinary programs/etc“et cetera”/usruser software area (historically)/varvariable data/tmptemporary files
They may look odd now, but they made perfect sense at the time.
The Hidden Design Principle
At this point, a pattern emerges.
Each directory exists to separate different types of data:
TypeDirectoryessential programs/binconfiguration/etcuser data/homesoftware/usrchanging data/vartemporary data/tmp
This separation makes systems easier to:
- manage
- scale
- maintain
A Small Historical Twist
Modern Linux systems are slowly changing this layout.
Originally, directories like /bin and /usr/bin were separate because they often lived on different disks.
But today, most systems use a single large disk.
Because of this, many distributions have adopted something called the “usr merge.”
In this approach:
/bin → /usr/bin
/lib → /usr/lib
/sbin → /usr/sbin
These directories still exist, but they often point to the same location behind the scenes.
It simplifies the system while keeping compatibility with decades of existing software.
And There Are Many More
If you explore further, you’ll find additional directories like:
/dev— representing hardware devices/lib— shared libraries used by programs/boot— files needed to start the system/proc— system and process information/opt— optional third-party software
Each has its own purpose.
But the core structure we’ve explored tells the main story.

Image generated using Canva
The Big Picture
At first glance, the Linux filesystem can feel confusing.
Why so many directories? Why such strange names?
But when you see it as something that evolved over decades, it starts to make sense.
It’s like a house that slowly adapts as a family grows:
Linux DirectoryThink of it like/the house itself/binthe everyday tool drawer/etcthe household rulebook/homepersonal rooms/usrthe garage or storage area/varthe record-keeping cabinet/tmpthe temporary workspace
What began as a tiny system grew into a well-organized structure — shaped by real constraints, real needs, and years of evolution.
And the filesystem still carries that story today.
메타데이터
- post_id
- 720d8141e7af
- slug
- why-linux-has-so-many-directories-and-why-their-names-make-no-sense-720d8141e7af
- url
- https://medium.com/@techcircumference/why-linux-has-so-many-directories-and-why-their-names-make-no-sense-720d8141e7af
- canonical_url
- https://medium.com/@techcircumference/why-linux-has-so-many-directories-and-why-their-names-make-no-sense-720d8141e7af
- author_url
- https://medium.com/@techcircumference
- status
- ok
- fetched_at
- 2026-08-24 20:59:49